mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
79964338d13e1cab0dfdffaca24a3a2f18be4df1
20 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
|
0e6016f429 |
improve Address Sanitizer (ASAN) support and chk_tree
Updated BUGS about MSYS2 on Windows compiling of calc. Added more git related checks and sanity checks to chk_tree. Added ${FSANITIZE} make variable to Makefile.config to hold common Address Sanitizer (ASAN) optins to modern Linux and macOS. The Address Sanitizer is NOT enabled not compiled in by default. Improved comments in Makefile.local for RHEL9.2 (Linux) and for macOS 14.0 that, when uncommented and calc is recompiled (i.e., make clobber all) will enable the Address Sanitizer (ASAN) for calc. |
||
|
d14d525a6a |
Release v2.15.0.1
The following are the changes in this release: The tarball for calc version 2.15.0.0 was missing version.h. The version.h is now listed as part of the calc distribution. Added the following new trigonometric functions: versin(x [,eps]) versed trigonometric sine coversin(x [,eps]) coversed trigonometric sine vercos(x [,eps]) versed trigonometric cosine covercos(x [,eps]) coversed trigonometric cosine aversin(x [,eps]) inverse versed trigonometric sine acoversin(x [,eps]) inverse coversed trigonometric sine avercos(x [,eps]) inverse versed trigonometric cosine acovercos(x [,eps]) inverse coversed trigonometric cosine haversin(x [,eps]) half versed trigonometric sine hacoversin(x [,eps]) half coversed trigonometric sine havercos(x [,eps]) half versed trigonometric cosine hacovercos(x [,eps]) half coversed trigonometric cosine ahaversin(x [,eps]) inverse half versed trigonometric sine ahacoversin(x [,eps]) inverse half coversed trigonometric sine ahavercos(x [,eps]) inverse half versed trigonometric cosine ahacovercos(x [,eps]) inverse half coversed trigonometric cosine exsec(x [,eps]) exterior trigonometric secant aexsec(x [,eps]) inverse exterior trigonometric secant excsc(x [,eps]) exterior trigonometric cosecant aexcsc(x [,eps]) inverse exterior trigonometric cosecant crd(x [,eps]) trigonometric chord of a unit circle acrd(x [,eps]) inverse trigonometric chord of a unit circle cas(x [,eps]) trigonometric cosine plus sine cis(x [,eps]) Euler's formula As Msys2 is a fork of Cygwin, if the OSNAME is Msys, the Cygwin target will be used. Thanks to GitHub user @iahung2 for the pull request. Support for win32 and DJGPP has been dropped. Calc version 2.14.3.5 was the last to make references to win32 and make references to DJGPP. Future versions of calc may work under those systems, we just elected to remove the somewhat out of date and awkward `win32.mkdef` and related win32 references. If you are a win32 user, please feel free to create a win32 target in Makefile.target and submit as a pull request. If you are a DJGPP user, please feel free to create a DJGPP target in Makefile.target and submit as a pull request. Until someone can test such systems, we prefer to wait until someone is able to test and supply a pull request. Added PTR_LEN (length of a pointer) and PTR_BITS (bit length of a pointer) to longbits.h. Moved calc version definition from version.c to version.h. Sorted the order of symbols printed by "make env". Test if <stdbool.h> exists and set HAVE_STDBOOL_H accordingly in have_stdbool.h. Added HAVE_STDBOOL_H to allow one to force this value. Added "bool.h" include file to support use of boolean symbols, true and false for pre-c99 C compilers. The "bool.h" include file defines TRUE as true, FALSE as false, and BOOL as bool: for backward compatibility. Replaced in C source, TRUE with true, FALSE with false, and BOOL with bool. Fixed have_statfs optional executable file extension ${EXT{ in the ${UTIL_PROGS} make variable. Test if <stdint.h> exists and set HAVE_STDINT_H accordingly in have_stdint.h. Added HAVE_STDINT_H to allow one to force this value. Test if <inttypes.h> exists and set HAVE_INTTYPES_H accordingly in have_inttypes.h. Added HAVE_INTTYPES_H to allow one to force this value. Added c_chk.c to check the compiler and C include for calc requirements. If you are unable to compile this program, or if this program when compiles does not exit 0, then your C compiler and/or C include fails to meet calc requirements. Compilers that are at least c99 MUST be able to compile this program such that when run will exit 0. The "make hsrc" file will attempt to compile and run c_chk and will warn if the C compiler and/or C include fails to meet calc requirements. The "make debug" system will run c_chk -c to print information about the C compiler and C include. Currently failure to compile cc_chk.c or c_chk exiting non-0 will just print "WARNING!!" strings to stderr. The make chk_c file also forms status.chk_c.h which either defines CHK_C when the C compiler and select include files appear to meet calc requirements, or undefines CHK_C when it does not. Added int.h as a central place for calc integer types and integer macros. Removed `-R release_file` and `-r release_file` command line options from `ver_calc`. Add `-h` option. Updated comments in "README.RELEASE", which serves as the contents of the calc command "help release". Added log2(x [,eps]) builtin function. When x is an integer power of 2, log2(x) will return an integer, otherwise it will return the equivalent of ln(x)/ln(2). Removed CALC2_COMPAT in favor of ckecking if MAJOR_VER < 3. The sign element in a ZVALUE is now of type SIGN, which is either SB32 when MAJOR_VER < 3, or a bool otherwise. The len element in a ZVALUE is of type LEN. LEN type is SB32 when MAJOR_VER < 3, or a uintptr_t otherwise. Setting an invalid epsilon via the epsilon(value) or confiv("epsilon", value) triggers an error. The epsilon value must be: 0 < epsilon < 1. Added new logn(x, n [,eps]) builtin to compute logarithms to base n. Verify that eps arguments (error tolerance arguments that override the default epsilon value) to builtin functions have proper values. Previously the eps argument had little to no value checks for many builtin functions. Document in help files for builtin functions that take eps arguments, the LIMIT range for such eps values. Removed old Makefile testing rules for make dbx and make gdb. Improved "make run" to execute calccalc using shared libraries from the local directory, and with reading of the startup scripts disabled. Changed "make prep" to perform various tests that are used to help verify that calc is ready for a release. Added the update_ver tool, (formerly verupdate) and the trailblank tool that existed outside of the calc source base but neverthless used in the calc release process. Both of these tools are used by "make prep". Added Makefile testing rule "make testfuncsort" to check for the sort of the builtin function list. Changed the order that builtin functions are listed by "show builtin" and the help/builtin to match the sorting of "LANG=C LC_ALL=C sort -d -u". Added c_to_q(COMPLEX *c, bool cfree) to make is easier to convert a COMPLEX value that is real (imag part is 0) into a NUMBER and optionally free the COMPLEX value. The func.c code now uses c_to_q(). Added q_to_c(NUMBER *q) to make it easier to convert a NUMBER into an allocated COMPLEX value. Added new vercos(x, [,eps]) for versed cosine and covercos(x, [,eps]) for inverse versed cosine. Added new avercos(x, [,eps]) for inverse versed cosine and acovercos(x, [,eps]) for inverse coversed cosine. Improved comments about use of the ${CALC_ENV} Makefile variable. Noted in Makefile.cal where and how the ${CALC_ENV} is used. Use ${CALC_ENV} Makefile variable were needed. Modified regression test cal/regress.cal: in some cases test numbers were adjusted. Add comments indicate which test numbers apply to which code. Indicated where there is room for new tests. Expanded the end of test numbers from 9999 to 99999. To make the meaning a bit more clear in cal/regress.cal, we have renamed the following test calc resource files that are related to the calc regression test suite: cal/test1700.cal -> cal/test8000.read.cal cal/test2300.cal -> cal/test2300.obj_incdec.cal cal/test2600.cal -> cal/test2600.numfunc.cal cal/test2700.cal -> cal/test2700.isqrt.cal cal/test3100.cal -> cal/test3100.matobj.cal cal/test3400.cal -> cal/test3400.trig.cal cal/test4000.cal -> cal/test4000.ptest.cal cal/test4100.cal -> cal/test4100.redc.cal cal/test4600.cal -> cal/test4600.fileop.cal cal/test5100.cal -> cal/test5100.newdecl.cal cal/test5200.cal -> cal/test5200.globstat.cal cal/test8400.cal -> cal/test8400.quit.cal cal/test8500.cal -> cal/test8500.divmod.cal cal/test8600.cal -> cal/test8600.maxargs.cal cal/set8700.cal -> cal/test8700.dotest.cal cal/test8900.cal -> cal/test8900.special.cal cal/test9300.cal -> cal/test9300.frem.cal Added to test 94dd, read of a number of new calc resource files that are not already read as a result of the calc regression test suite. Fixed more documentation and code comments that referred to the old additive 55 (a55) shuffle pseudo-random number generator. We have been using the subtractive 100 shuffle pseudo-random number generator in place of the additive 55 generator for a while now. Improved help files trigonometric functions. They were corrected to indicate that complex arguments are allowed: an oversight from long ago when those trigonometric functions were expanded to include complex arguments. The EXAMPLE sections were expanded and made consistent, where applicable, across the trigonometric help files. Documented libcalc functions in the SEE ALSO sections. Improved "SEE ALSO" for the hyperbolic function help files. Expanded the calc regression test suite test 34dd to test various real and complex values for trigonometric functions. Added complex multiple approximation function to commath.c so that users of libcalc may directly round complex number to nearest multiple of a given real number: E_FUNC COMPLEX *cmappr(COMPLEX *c, NUMBER *e, long rnd, bool cfree); For example: COMPLEX *c; /* complex number to round to nearest epsilon */ NUMBER *eps; /* epsilon rounding precision */ COMPLEX *res; /* c rounded to nearest epsilon */ long rnd = 24L; /* a common rounding mode */ bool ok_to_free; /* true ==> free c, false ==> do not free c */ ... res = cmappr(c, eps, ok_to_free); The complex trigonometric functions tan, cot, sec, csc were implemented in func.c as calls to complex sin and complex cos. We added the following direct calls to comfunc.c so that users of libcalc may call them directly: E_FUNC COMPLEX *c_tan(COMPLEX *c, NUMBER *eps); E_FUNC COMPLEX *c_cot(COMPLEX *c, NUMBER *eps); E_FUNC COMPLEX *c_sec(COMPLEX *c, NUMBER *eps); E_FUNC COMPLEX *c_cot(COMPLEX *c, NUMBER *eps); Added help/errorcodes rule to the top level Makefile. Added E_USERMAX symbol (== 32767) to indicate the maximum value allowed for user error codes. Improved help/error. Added text about error code ranges and range symbols. Changed calc_errno a global int variable so that is may be directly accessed by libcalc users. Further improve help files for help/errno, help/error, help/newerror, help/stoponerror and help/strerror by adding to documentation of the calc error code system as well as libcalc interface where applicable. Changed #define E_USERDEF to #define E__USERDEF. Removed use of E_USERDEF, E__BASE, E__COUNT, and E__HIGHEST from custom/c_sysinfo because the c_sysinfo is just a demo and this will simplify the custom/Makefile. The include file calcerr.h is now the errsym.h include file. The calcerr.tbl has been replaced by errtbl.c and errtbl.h. The calcerr_c.awk, calcerr_c.sed, calcerr_h.awk, and calcerr_h.sed files are now obsolete and have been removed. The calcerr.c and calcerr.h now obsolete and are no longer built. The calc computation error codes, symbols and messages are now in a error_table[] array of struct errtbl. An E_STRING is a string corresponds to an error code #define. For example, the E_STRING for the calc error E_STRCAT, is the string "E_STRING". An E_STRING must now match the regular expression: "^E_[A-Z0-9_]+$". The old array error_table[] of error message strings has been replaced by a new error_table[] array of struct errtbl. The struct errtbl array holds calc errnum error codes, the related E_STRING symbol as a string, and the original related error message. To add new computation error codes, add them near the bottom of the error_table[] array, just before the NULL entry. The ./errcode utility, when run, will verify the consistency of the error_table[] array. The Makefile uses ./errcode -e to generate the contents of help/errorcodes file. The help errorcodes now prints information from the new cstruct errtbl error_table[] array. The help/errorcodes.hdr and help/errorcodes.sed files are now obsolete and have been removed. The Makefile uses ./errcode -d to generate the contents of the errsym.h include file. Code that used the old array error_table[] of error message strings such as: #include "calcerr.h" char *msg; /* calc computation error message */ msg = error_table[errnum - E__BASE]; where errnum is the calc computation error code E__BASE <= errnum <= E__HIGHEST, may now use: #include "errtbl.h" #include "errsym.h" char *msg; /* calc computation error message */ msg = error_table[errnum - E__BASE].errmsg; Rename the #define E__COUNT to ECOUNT to avoid confusion with "E_STRING" error symbols. Renamed "E_1OVER0" to "E_DIVBYZERO". Renamed "E_0OVER0" to "E_ZERODIVZERO". The verify_error_table() function that does a verification the error_table[] array and setup private_error_alias[] array is now called by libcalc_call_me_first(). Fix comment about wrong include file in have_sys_mount.h. Removed unused booltostr() and strtobool() macros from bool.h. Moved define of math_error(char *, ...) from zmath.h to errtbl.h. The errtbl.h include file, unless ERRCODE_SRC is defined also includes attribute.h and errsym.h. Added E_STRING to error([errnum | "E_STRING"]) builtin function. Added E_STRING to errno([errnum | "E_STRING"]) builtin function. Added E_STRING to strerror([errnum | "E_STRING"]) builtin function. Calling these functions with an E_STRING errsym is the same as calling them with the matching errnum code. Standardized on calc computation error related E_STRING strings where there are a set of related codes. Changed "E_...digits" into "E_..._digits". For example, E_FPUTC1 became E_FPUTC_1, E_FPUTC2 became E_FPUTC_2, and E_FPUTC3 became E_FPUTC_3. In a few cases such as E_APPR became E_APPR_1, because there was a E_APPR2 (which became E_APPR_2) and E_APPR3 (which became E_APPR_3). To other special cases, E_ILOG10 became E_IBASE10_LOG and E_ILOG2 became E_IBASE2_LOG because E_ILOG10 and E_ILOG2 are both independent calc computation error related E_STRING strings. Now related sets of E_STRING strings end in _ (underscore) followed by digits. Added errsym builtin function. The errsym(errnum | "E_STRING") builtin, , when given a valid integer errnum that corresponds to a calc error condition, will return an E_STRING string, AND when given a valid E_STRING string that is associated with a calc error condition, will return errnum integer that corresponds to a calc error condition. Supplying a non-integer numeric errnum code to error(), errno(), strerror(), or errsym() will result in an error. Added tests to the calc regression test suite (cal/regress.cal) to verify that the errnum calc computation error codes and their E_STRING values have not changed. Improved the clarity of calc regression suite (regress.cal) to mostly use E_STRING errsym instead of numeric errnum values for error() and errno() related tests. Fixed SEE ALSO typo in help randperm. Fixed calc regression test 42dd to set the display value back to 20. Added to test 95dd and test9500.trigeq.cal to the calc regression test suite to perform extensive test of trigonometric functions. Added to test 34dd, some if the missing inverse trigonometric tests. Improved builtin function strings, as printed by help builtin, that use an optional accuracy (epsilon) arg by adding a comma. The following are the changes from calc version 2.14.3.4 to 2.14.3.5: Under macOS, to reduce dependency chains, we remove functions and data that are unreachable by the entry point or exported symbols. In particular, the macOS linker is used with both "-dead_strip" and "-dead_strip_dylibs". The libcalc shared library is now linked with libcustcalc. The config("triground") controls rounding for the following trigonometric and hyperbolic functions: sin, cos, tan, cot, sec, csc asin, acos, atan, acot, asec, acsc versin, coversin, vercos, covercos aversin, acoversin, avercos, acovercos haversin, hacoversin, havercos, hacovercos ahaversin, hacoversin, havercos, ahacovercos exsec, aexsec, excsc, aexcsc crd, acrd cas, cis sinh, cosh, tanh, coth, sech, csch asinh, acosh, atanh, acoth, asech, acsch In addition to taking a complex root (such as via the power function on a complex value), "triground" is used for: exp, polar For the above mentioned functions, the rounding mode used to round the result to the nearest epsilon value is controlled by, and defaults to: config("triground", 24) As with other config options, the call returns the previous mode, without a 2nd argument, returns the current mode without changing it: config("triground") When printing an error, calc used to print the errnum (error number): ; 1/0 Error 10001 Calc now prints the errsym (errsym): ; 1/0 Error E_DIVBYZERO Added errsym E_LN_3 for ln(0). Added errsym E_LOG_5 for log(0). Added errsym E_LOG2_4 for log2(0). Added errsym E_LOGN_6 for logn(0,base). Added a chk_tree tool to help look for problems such as files that are result of building calc that are also part of the calc distribution, and files that are part of the calc source that are missing from the calc distribution, and files that are of unknown status that are either result of building calc nor missing from the calc distribution. Updated file lists in Makefile, sorting as needed. Updated Makefile PHONY rule to include Makefile rules that are NOT files. Reduced make chatter for rules that build lists. Added make verifydist to verify the existence of files that are part of the calc distribution. Added make verifydist to make prep. Added a chk_tree double check, one after make clobber, one before the final make chk, to make prep. Added double pass of chk_tree to make full_debug (and thus to the make debug output). Improved notes for install locations in Makefile.config. Added printing of ${BUILD_ALL} to make env output. |
||
|
77d7e665e0 |
Improve Makefile comments and tests
Improved notes for install locations in Makefile.config. Added printing of ${BUILD_ALL} to make env output. Added double pass of chk_tree to make full_debug (and thus to the make debug output). |
||
|
5a227873e5 |
Release v2.15.0.0
The following are the changes in this release: Added the following new trigonometric functions: versin(x [,eps]) versed trigonometric sine coversin(x [,eps]) coversed trigonometric sine vercos(x [,eps]) versed trigonometric cosine covercos(x [,eps]) coversed trigonometric cosine aversin(x [,eps]) inverse versed trigonometric sine acoversin(x [,eps]) inverse coversed trigonometric sine avercos(x [,eps]) inverse versed trigonometric cosine acovercos(x [,eps]) inverse coversed trigonometric cosine haversin(x [,eps]) half versed trigonometric sine hacoversin(x [,eps]) half coversed trigonometric sine havercos(x [,eps]) half versed trigonometric cosine hacovercos(x [,eps]) half coversed trigonometric cosine ahaversin(x [,eps]) inverse half versed trigonometric sine ahacoversin(x [,eps]) inverse half coversed trigonometric sine ahavercos(x [,eps]) inverse half versed trigonometric cosine ahacovercos(x [,eps]) inverse half coversed trigonometric cosine exsec(x [,eps]) exterior trigonometric secant aexsec(x [,eps]) inverse exterior trigonometric secant excsc(x [,eps]) exterior trigonometric cosecant aexcsc(x [,eps]) inverse exterior trigonometric cosecant crd(x [,eps]) trigonometric chord of a unit circle acrd(x [,eps]) inverse trigonometric chord of a unit circle cas(x [,eps]) trigonometric cosine plus sine cis(x [,eps]) Euler's formula As Msys2 is a fork of Cygwin, if the OSNAME is Msys, the Cygwin target will be used. Thanks to GitHub user @iahung2 for the pull request. Support for win32 and DJGPP has been dropped. Calc version 2.14.3.5 was the last to make references to win32 and make references to DJGPP. Future versions of calc may work under those systems, we just elected to remove the somewhat out of date and awkward `win32.mkdef` and related win32 references. If you are a win32 user, please feel free to create a win32 target in Makefile.target and submit as a pull request. If you are a DJGPP user, please feel free to create a DJGPP target in Makefile.target and submit as a pull request. Until someone can test such systems, we prefer to wait until someone is able to test and supply a pull request. Added PTR_LEN (length of a pointer) and PTR_BITS (bit length of a pointer) to longbits.h. Moved calc version definition from version.c to version.h. Sorted the order of symbols printed by "make env". Test if <stdbool.h> exists and set HAVE_STDBOOL_H accordingly in have_stdbool.h. Added HAVE_STDBOOL_H to allow one to force this value. Added "bool.h" include file to support use of boolean symbols, true and false for pre-c99 C compilers. The "bool.h" include file defines TRUE as true, FALSE as false, and BOOL as bool: for backward compatibility. Replaced in C source, TRUE with true, FALSE with false, and BOOL with bool. Fixed have_statfs optional executable file extension ${EXT{ in the ${UTIL_PROGS} make variable. Test if <stdint.h> exists and set HAVE_STDINT_H accordingly in have_stdint.h. Added HAVE_STDINT_H to allow one to force this value. Test if <inttypes.h> exists and set HAVE_INTTYPES_H accordingly in have_inttypes.h. Added HAVE_INTTYPES_H to allow one to force this value. Added c_chk.c to check the compiler and C include for calc requirements. If you are unable to compile this program, or if this program when compiles does not exit 0, then your C compiler and/or C include fails to meet calc requirements. Compilers that are at least c99 MUST be able to compile this program such that when run will exit 0. The "make hsrc" file will attempt to compile and run c_chk and will warn if the C compiler and/or C include fails to meet calc requirements. The "make debug" system will run c_chk -c to print information about the C compiler and C include. Currently failure to compile cc_chk.c or c_chk exiting non-0 will just print "WARNING!!" strings to stderr. The make chk_c file also forms status.chk_c.h which either defines CHK_C when the C compiler and select include files appear to meet calc requirements, or undefines CHK_C when it does not. Added int.h as a central place for calc integer types and integer macros. Removed `-R release_file` and `-r release_file` command line options from `ver_calc`. Add `-h` option. Updated comments in "README.RELEASE", which serves as the contents of the calc command "help release". Added log2(x [,eps]) builtin function. When x is an integer power of 2, log2(x) will return an integer, otherwise it will return the equivalent of ln(x)/ln(2). Removed CALC2_COMPAT in favor of ckecking if MAJOR_VER < 3. The sign element in a ZVALUE is now of type SIGN, which is either SB32 when MAJOR_VER < 3, or a bool otherwise. The len element in a ZVALUE is of type LEN. LEN type is SB32 when MAJOR_VER < 3, or a uintptr_t otherwise. Setting an invalid epsilon via the epsilon(value) or confiv("epsilon", value) triggers an error. The epsilon value must be: 0 < epsilon < 1. Added new logn(x, n [,eps]) builtin to compute logarithms to base n. Verify that eps arguments (error tolerance arguments that override the default epsilon value) to builtin functions have proper values. Previously the eps argument had little to no value checks for many builtin functions. Document in help files for builtin functions that take eps arguments, the LIMIT range for such eps values. Removed old Makefile testing rules for make dbx and make gdb. Improved "make run" to execute calccalc using shared libraries from the local directory, and with reading of the startup scripts disabled. Changed "make prep" to perform various tests that are used to help verify that calc is ready for a release. Added the update_ver tool, (formerly verupdate) and the trailblank tool that existed outside of the calc source base but neverthless used in the calc release process. Both of these tools are used by "make prep". Added Makefile testing rule "make testfuncsort" to check for the sort of the builtin function list. Changed the order that builtin functions are listed by "show builtin" and the help/builtin to match the sorting of "LANG=C LC_ALL=C sort -d -u". Added c_to_q(COMPLEX *c, bool cfree) to make is easier to convert a COMPLEX value that is real (imag part is 0) into a NUMBER and optionally free the COMPLEX value. The func.c code now uses c_to_q(). Added q_to_c(NUMBER *q) to make it easier to convert a NUMBER into an allocated COMPLEX value. Added new vercos(x, [,eps]) for versed cosine and covercos(x, [,eps]) for inverse versed cosine. Added new avercos(x, [,eps]) for inverse versed cosine and acovercos(x, [,eps]) for inverse coversed cosine. Improved comments about use of the ${CALC_ENV} Makefile variable. Noted in Makefile.cal where and how the ${CALC_ENV} is used. Use ${CALC_ENV} Makefile variable were needed. Modified regression test cal/regress.cal: in some cases test numbers were adjusted. Add comments indicate which test numbers apply to which code. Indicated where there is room for new tests. Expanded the end of test numbers from 9999 to 99999. To make the meaning a bit more clear in cal/regress.cal, we have renamed the following test calc resource files that are related to the calc regression test suite: cal/test1700.cal -> cal/test8000.read.cal cal/test2300.cal -> cal/test2300.obj_incdec.cal cal/test2600.cal -> cal/test2600.numfunc.cal cal/test2700.cal -> cal/test2700.isqrt.cal cal/test3100.cal -> cal/test3100.matobj.cal cal/test3400.cal -> cal/test3400.trig.cal cal/test4000.cal -> cal/test4000.ptest.cal cal/test4100.cal -> cal/test4100.redc.cal cal/test4600.cal -> cal/test4600.fileop.cal cal/test5100.cal -> cal/test5100.newdecl.cal cal/test5200.cal -> cal/test5200.globstat.cal cal/test8400.cal -> cal/test8400.quit.cal cal/test8500.cal -> cal/test8500.divmod.cal cal/test8600.cal -> cal/test8600.maxargs.cal cal/set8700.cal -> cal/test8700.dotest.cal cal/test8900.cal -> cal/test8900.special.cal cal/test9300.cal -> cal/test9300.frem.cal Added to test 94dd, read of a number of new calc resource files that are not already read as a result of the calc regression test suite. Fixed more documentation and code comments that referred to the old additive 55 (a55) shuffle pseudo-random number generator. We have been using the subtractive 100 shuffle pseudo-random number generator in place of the additive 55 generator for a while now. Improved help files trigonometric functions. They were corrected to indicate that complex arguments are allowed: an oversight from long ago when those trigonometric functions were expanded to include complex arguments. The EXAMPLE sections were expanded and made consistent, where applicable, across the trigonometric help files. Documented libcalc functions in the SEE ALSO sections. Improved "SEE ALSO" for the hyperbolic function help files. Expanded the calc regression test suite test 34dd to test various real and complex values for trigonometric functions. Added complex multiple approximation function to commath.c so that users of libcalc may directly round complex number to nearest multiple of a given real number: E_FUNC COMPLEX *cmappr(COMPLEX *c, NUMBER *e, long rnd, bool cfree); For example: COMPLEX *c; /* complex number to round to nearest epsilon */ NUMBER *eps; /* epsilon rounding precision */ COMPLEX *res; /* c rounded to nearest epsilon */ long rnd = 24L; /* a common rounding mode */ bool ok_to_free; /* true ==> free c, false ==> do not free c */ ... res = cmappr(c, eps, ok_to_free); The complex trigonometric functions tan, cot, sec, csc were implemented in func.c as calls to complex sin and complex cos. We added the following direct calls to comfunc.c so that users of libcalc may call them directly: E_FUNC COMPLEX *c_tan(COMPLEX *c, NUMBER *eps); E_FUNC COMPLEX *c_cot(COMPLEX *c, NUMBER *eps); E_FUNC COMPLEX *c_sec(COMPLEX *c, NUMBER *eps); E_FUNC COMPLEX *c_cot(COMPLEX *c, NUMBER *eps); Added help/errorcodes rule to the top level Makefile. Added E_USERMAX symbol (== 32767) to indicate the maximum value allowed for user error codes. Improved help/error. Added text about error code ranges and range symbols. Changed calc_errno a global int variable so that is may be directly accessed by libcalc users. Further improve help files for help/errno, help/error, help/newerror, help/stoponerror and help/strerror by adding to documentation of the calc error code system as well as libcalc interface where applicable. Changed #define E_USERDEF to #define E__USERDEF. Removed use of E_USERDEF, E__BASE, E__COUNT, and E__HIGHEST from custom/c_sysinfo because the c_sysinfo is just a demo and this will simplify the custom/Makefile. The include file calcerr.h is now the errsym.h include file. The calcerr.tbl has been replaced by errtbl.c and errtbl.h. The calcerr_c.awk, calcerr_c.sed, calcerr_h.awk, and calcerr_h.sed files are now obsolete and have been removed. The calcerr.c and calcerr.h now obsolete and are no longer built. The calc computation error codes, symbols and messages are now in a error_table[] array of struct errtbl. An E_STRING is a string corresponds to an error code #define. For example, the E_STRING for the calc error E_STRCAT, is the string "E_STRING". An E_STRING must now match the regular expression: "^E_[A-Z0-9_]+$". The old array error_table[] of error message strings has been replaced by a new error_table[] array of struct errtbl. The struct errtbl array holds calc errnum error codes, the related E_STRING symbol as a string, and the original related error message. To add new computation error codes, add them near the bottom of the error_table[] array, just before the NULL entry. The ./errcode utility, when run, will verify the consistency of the error_table[] array. The Makefile uses ./errcode -e to generate the contents of help/errorcodes file. The help errorcodes now prints information from the new cstruct errtbl error_table[] array. The help/errorcodes.hdr and help/errorcodes.sed files are now obsolete and have been removed. The Makefile uses ./errcode -d to generate the contents of the errsym.h include file. Code that used the old array error_table[] of error message strings such as: #include "calcerr.h" char *msg; /* calc computation error message */ msg = error_table[errnum - E__BASE]; where errnum is the calc computation error code E__BASE <= errnum <= E__HIGHEST, may now use: #include "errtbl.h" #include "errsym.h" char *msg; /* calc computation error message */ msg = error_table[errnum - E__BASE].errmsg; Rename the #define E__COUNT to ECOUNT to avoid confusion with "E_STRING" error symbols. Renamed "E_1OVER0" to "E_DIVBYZERO". Renamed "E_0OVER0" to "E_ZERODIVZERO". The verify_error_table() function that does a verification the error_table[] array and setup private_error_alias[] array is now called by libcalc_call_me_first(). Fix comment about wrong include file in have_sys_mount.h. Removed unused booltostr() and strtobool() macros from bool.h. Moved define of math_error(char *, ...) from zmath.h to errtbl.h. The errtbl.h include file, unless ERRCODE_SRC is defined also includes attribute.h and errsym.h. Added E_STRING to error([errnum | "E_STRING"]) builtin function. Added E_STRING to errno([errnum | "E_STRING"]) builtin function. Added E_STRING to strerror([errnum | "E_STRING"]) builtin function. Calling these functions with an E_STRING errsym is the same as calling them with the matching errnum code. Standardized on calc computation error related E_STRING strings where there are a set of related codes. Changed "E_...digits" into "E_..._digits". For example, E_FPUTC1 became E_FPUTC_1, E_FPUTC2 became E_FPUTC_2, and E_FPUTC3 became E_FPUTC_3. In a few cases such as E_APPR became E_APPR_1, because there was a E_APPR2 (which became E_APPR_2) and E_APPR3 (which became E_APPR_3). To other special cases, E_ILOG10 became E_IBASE10_LOG and E_ILOG2 became E_IBASE2_LOG because E_ILOG10 and E_ILOG2 are both independent calc computation error related E_STRING strings. Now related sets of E_STRING strings end in _ (underscore) followed by digits. Added errsym builtin function. The errsym(errnum | "E_STRING") builtin, , when given a valid integer errnum that corresponds to a calc error condition, will return an E_STRING string, AND when given a valid E_STRING string that is associated with a calc error condition, will return errnum integer that corresponds to a calc error condition. Supplying a non-integer numeric errnum code to error(), errno(), strerror(), or errsym() will result in an error. Added tests to the calc regression test suite (cal/regress.cal) to verify that the errnum calc computation error codes and their E_STRING values have not changed. Improved the clarity of calc regression suite (regress.cal) to mostly use E_STRING errsym instead of numeric errnum values for error() and errno() related tests. Fixed SEE ALSO typo in help randperm. Fixed calc regression test 42dd to set the display value back to 20. Added to test 95dd and test9500.trigeq.cal to the calc regression test suite to perform extensive test of trigonometric functions. Added to test 34dd, some if the missing inverse trigonometric tests. Improved builtin function strings, as printed by help builtin, that use an optional accuracy (epsilon) arg by adding a comma. |
||
|
3fd55f0431 |
improve the cal/regress.cal regress test suite structure
Improve comments about use of the ${CALC_ENV} Makefile variable. Noted in Makefile.cal where and how the ${CALC_ENV} is used. Use ${CALC_ENV} Makefile variable were needed. Modified regression test cal/regress.cal: in some cases test numbers were adjusted. Add comments indicate which test numbers apply to which code. Indicated where there is room for new tests. Expanded the end of test numbers from 9999 to 99999. |
||
|
86f1d9e029 |
add new aversin and acoversin builtin functions.
Added new aversin(x, [,eps]) for inverse versed sine and acoversin(x, [,eps]) for inverse coversed sine. Improved trig function help files to reference use of complex arguments that while supported were not documented. Removed old Makefile testing rules for make dbx and make gdb. Improved "make run" to execute calccalc using shared libraries from the local directory, and with reading of the startup scripts disabled. Changed "make prep" to perform various tests that are used to help verify that calc is ready for a release. Added Makefile testing rule testfuncsort to check for the sort of the builtin function list. Changed the order that builtin functions are listed by "show builtin" and the help/builtin to match the sorting of "LANG=C LC_ALL=C sort -d -u". |
||
|
4fddf82106 |
add C compiler and C include checks for calc
Fixed have_statfs optional executable file extension ${EXT{ in the ${UTIL_PROGS} make variable. Prevented the "fake boolean value" when <stdbool.h> is missing, from complicating C compilers post c17 standard. Test if <stdint.h> exists and set HAVE_STDINT_H accordingly in have_stdint.h. Added HAVE_STDINT_H to allow one to force this value. Test if <inttypes.h> exists and set HAVE_INTTYPES_H accordingly in have_inttypes.h. Added HAVE_INTTYPES_H to allow one to force this value. Added c_chk.c to check the compiler and C include for calc requirements. If you are unable to compile this program, or if this program when compiles does not exit 0, then your C compiler and/or C include fails to meet calc requirements. Compilers that are at least c99 MUST be able to compile this program such that when run will exit 0. The "make hsrc" file will attempt to compile and run c_chk and will warn if the C compiler and/or C include fails to meet calc requirements. The "make debug" system will run c_chk -c to print information about the C compiler and C include. Currently failure to compile cc_chk.c or c_chk exiting non-0 will just print "WARNING!!" strings to stderr. |
||
|
3c18e6e25b |
changed C source to use C booleans with backward compatibility
Fix "Under source code control" date for new version.h file. Sorted the order of symbols printed by "make env". Test if <stdbool.h> exists and set HAVE_STDBOOL_H accordingly in have_stdbool.h. Added HAVE_STDBOOL_H to allow one to force this value. Added "bool.h" include file to support use of boolean symbols, true and false for pre-c99 C compilers. The "bool.h" include file defines TRUE as true, FALSE as false, and BOOL as bool: for backward compatibility. The sign in a ZVALUE is now of type SIGN, whcih is either SB32 when CALC2_COMPAT is defined, or a bool. Replaced in C source, TRUE with true, FALSE with false, and BOOL with bool. |
||
|
ea57d2f24f |
drop support for DJGPP and drop support for win32
Support for win32 and DJGPP has been dropped. Calc version 2.14.3.5 was the last to make references to win32 and make references to DJGPP. Future versions of calc may work under those systems, we just elected to remove the somewhat out of date and awkward `win32.mkdef` and related win32 references. If you are a win32 user, please feel free to create a win32 target in Makefile.target and submit as a pull request. If you are a DJGPP user, please feel free to create a DJGPP target in Makefile.target and submit as a pull request. Until someone can test such systems, we prefer to wait until someone is able to test and supply a pull request. |
||
|
7ad1448a1a | further clarify that Msys2 is a fork of Cygwin | ||
|
8055bf07c2 |
Update Makefile.config
Fix build on MSYS2 (MSYS) |
||
|
28449fd187 |
Release v2.14.3.5
The following are the changes in this release: Under macOS, to reduce dependency chains, we remove functions and data that are unreachable by the entry point or exported symbols. In particular, the macOS linker is used with both "-dead_strip" and "-dead_strip_dylibs". The libcalc shared library is now linked with libcustcalc. |
||
|
3cd8fd7053 |
Release v2.14.3.4
Fixed rpm spec file. The following are the changes in this release: Fix typo in the `make debug` Makefile rule. Improved .gitignore to ignore .static, calc-static, sample_many-static and sample_rand-static. Improved error messages when trying to compile with with one calc type (when BLD_TYPE=calc-dynamic-only or BLD_TYPE=calc-static-only) and install with the other. When installing with BLD_TYPE=calc-static-only, the installed calc and calc-static are links to each other. Thanks to GitHub user @TurtleWilly for this suggestion. The dynamic shared libraries are not installed if they are not built. So when installing with BLD_TYPE=calc-static-only, the install rule will not attempt to install dynamic shared libraries. Thanks to GitHub user @TurtleWilly for bringing to our attention, problems related to building a statically linked calc under macOS. Updated comments in Makefile.local for how to Diagnosing memory, thread, and crash issues under RHEL and macOS. We no longer support the Makefile variable ${ALLOW_CUSTOM} to be empty. Normally ${ALLOW_CUSTOM} is: ALLOW_CUSTOM= -DCUSTOM Now, to disable custom disable custom even if -C is given, use: ALLOW_CUSTOM="-UCUSTOM" Dropped support of Makefile.simple and custom/Makefile.simple. The calc version 2.14.3.0 is the last release that supported the Makefile.simple and custom/Makefile.simple files. Now, a make that supports makefile conditional syntax is required. The simple target, a target that only was used for Makefile.simple was removed. Moved makefile variables that configure calc and configure how to compile calc from Makefile into a new Makefile.config file. The Makeifle includes the Makefile.config file. The cal/Makeifle includes the Makefile.config file. The cscript/Makeifle includes the Makefile.config file. The custom/Makeifle includes the Makefile.config file. The help/Makeifle includes the Makefile.config file. Now, the Makefile.config file will consistently configure calc and how calc is compiled and built by all calc Makefiles. The custom/Makefile no longer includes Makefile. The platform target section from the old Makefile has been moved to a new file, Makefile.target. Improved the format and comments in target information. The Makeifle includes the Makefile.target file. The cal/Makeifle includes the Makefile.target file. The cscript/Makeifle includes the Makefile.target file. The custom/Makeifle includes the Makefile.target file. The help/Makeifle includes the Makefile.target file. Now, the Makefile.target file will consistently set target information for all calc Makefiles. The cal/Makeifle includes the Makefile.local file. The cscript/Makeifle includes the Makefile.local file. The custom/Makeifle includes the Makefile.local file. The help/Makeifle includes the Makefile.local file. Thus, one may modify or append many Makefile variables in all calc Makefiles. Removed the ${CAL_PASSDOWN}, ${HELP_PASSDOWN}, ${HELP_PASSDOWN}, ${CSCRIPT_PASSDOWN} Makefile variables as the new Makefile include files keep Makefile variables in sync. Fixed the ability of calc to compile when CUSTOM is undefined (i.e., -UCUSTOM). The libcustcalc is always built, regardless of the $(ALLOW_CUSTOM} Makefile variable. However when CUSTOM is undefined, the bulk of custom functions are not defined. Dropped the use of Makefile variable ${SET_INSTALL_NAME}. Under macOS it was always needed, elsewhere it was not. Added Makefile variable ${VER} to hold the calc major release version. The calc major release version is a 3 level version (x.y.z). Under macOS, the current version of both libcalc and libcustcalc shared libraries are set to the current calc major release version. Under macOS, to reduce dependency chains, we remove functions and data that are unreachable by the entry point or exported symbols. In particular, the macOS linker is used with "-dead_strip" by default. While calc on macOS will execute if linker used with "-dead_strip_dylibs" and CUSTOM is defined, other applications that use libcalc but not libcustcalc (such as sample_many and sample_rand) will fail to execute due to missile symbols. Therefore "-dead_strip_dylibs" is not used by default when ALLOW_CUSTOM is "-DCUSTOM" under macOS. Thanks to GitHub user @TurtleWilly for bringing to our attention, problems related to use of "-dead_strip_dylibs". When installing shared libraries, libcalc.x.y.z will be a link to the libcalc shared library and libcustcalc.x.y.z will be a link to the libcustcal shared library. |
||
|
fe520975cf |
Release v2.14.3.3
The following are the changes in this release: Fix typo in the `make debug` Makefile rule. Improved .gitignore to ignore .static, calc-static, sample_many-static and sample_rand-static. Improved error messages when trying to compile with with one calc type (when BLD_TYPE=calc-dynamic-only or BLD_TYPE=calc-static-only) and install with the other. When installing with BLD_TYPE=calc-static-only, the installed calc and calc-static are links to each other. Thanks to GitHub user @TurtleWilly for this suggestion. The dynamic shared libraries are not installed if they are not built. So when installing with BLD_TYPE=calc-static-only, the install rule will not attempt to install dynamic shared libraries. Thanks to GitHub user @TurtleWilly for bringing to our attention, problems related to building a statically linked calc under macOS. Updated comments in Makefile.local for how to Diagnosing memory, thread, and crash issues under RHEL and macOS. We no longer support the Makefile variable ${ALLOW_CUSTOM} to be empty. Normally ${ALLOW_CUSTOM} is: ALLOW_CUSTOM= -DCUSTOM Now, to disable custom disable custom even if -C is given, use: ALLOW_CUSTOM="-UCUSTOM" Dropped support of Makefile.simple and custom/Makefile.simple. The calc version 2.14.3.0 is the last release that supported the Makefile.simple and custom/Makefile.simple files. Now, a make that supports makefile conditional syntax is required. The simple target, a target that only was used for Makefile.simple was removed. Moved makefile variables that configure calc and configure how to compile calc from Makefile into a new Makefile.config file. The Makeifle includes the Makefile.config file. The cal/Makeifle includes the Makefile.config file. The cscript/Makeifle includes the Makefile.config file. The custom/Makeifle includes the Makefile.config file. The help/Makeifle includes the Makefile.config file. Now, the Makefile.config file will consistently configure calc and how calc is compiled and built by all calc Makefiles. The custom/Makefile no longer includes Makefile. The platform target section from the old Makefile has been moved to a new file, Makefile.target. Improved the format and comments in target information. The Makeifle includes the Makefile.target file. The cal/Makeifle includes the Makefile.target file. The cscript/Makeifle includes the Makefile.target file. The custom/Makeifle includes the Makefile.target file. The help/Makeifle includes the Makefile.target file. Now, the Makefile.target file will consistently set target information for all calc Makefiles. The cal/Makeifle includes the Makefile.local file. The cscript/Makeifle includes the Makefile.local file. The custom/Makeifle includes the Makefile.local file. The help/Makeifle includes the Makefile.local file. Thus, one may modify or append many Makefile variables in all calc Makefiles. Removed the ${CAL_PASSDOWN}, ${HELP_PASSDOWN}, ${HELP_PASSDOWN}, ${CSCRIPT_PASSDOWN} Makefile variables as the new Makefile include files keep Makefile variables in sync. Fixed the ability of calc to compile when CUSTOM is undefined (i.e., -UCUSTOM). The libcustcalc is always built, regardless of the $(ALLOW_CUSTOM} Makefile variable. However when CUSTOM is undefined, the bulk of custom functions are not defined. Dropped the use of Makefile variable ${SET_INSTALL_NAME}. Under macOS it was always needed, elsewhere it was not. Added Makefile variable ${VER} to hold the calc major release version. The calc major release version is a 3 level version (x.y.z). Under macOS, the current version of both libcalc and libcustcalc shared libraries are set to the current calc major release version. Under macOS, to reduce dependency chains, we remove functions and data that are unreachable by the entry point or exported symbols. In particular, the macOS linker is used with "-dead_strip" by default. While calc on macOS will execute if linker used with "-dead_strip_dylibs" and CUSTOM is defined, other applications that use libcalc but not libcustcalc (such as sample_many and sample_rand) will fail to execute due to missile symbols. Therefore "-dead_strip_dylibs" is not used by default when ALLOW_CUSTOM is "-DCUSTOM" under macOS. Thanks to GitHub user @TurtleWilly for bringing to our attention, problems related to use of "-dead_strip_dylibs". When installing shared libraries, libcalc.x.y.z will be a link to the libcalc shared library and libcustcalc.x.y.z will be a link to the libcustcal shared library. |
||
|
f097dd7dc1 |
update calc rpm to relase 14
Sort .gitignore. Add calc.spec to .gitignore. Update format of header part of Makefiles. Modify calc.spec.in to handle dynamic shared libraries with 3-digit version numbers. |
||
|
3a7e763b28 |
Release v2.14.3.2
The following are the changes in this release: Fix typo in the `make debug` Makefile rule. Improved .gitignore to ignore .static, calc-static, sample_many-static and sample_rand-static. Improved error messages when trying to compile with with one calc type (when BLD_TYPE=calc-dynamic-only or BLD_TYPE=calc-static-only) and install with the other. When installing with BLD_TYPE=calc-static-only, the installed calc and calc-static are links to each other. Thanks to GitHub user @TurtleWilly for this suggestion. The dynamic shared libraries are not installed if they are not built. So when installing with BLD_TYPE=calc-static-only, the install rule will not attempt to install dynamic shared libraries. Thanks to GitHub user @TurtleWilly for bringing to our attention, problems related to building a statically linked calc under macOS. Updated comments in Makefile.local for how to Diagnosing memory, thread, and crash issues under RHEL and macOS. We no longer support the Makefile variable ${ALLOW_CUSTOM} to be empty. Normally ${ALLOW_CUSTOM} is: ALLOW_CUSTOM= -DCUSTOM Now, to disable custom disable custom even if -C is given, use: ALLOW_CUSTOM="-UCUSTOM" Dropped support of Makefile.simple and custom/Makefile.simple. The calc version 2.14.3.0 is the last release that supported the Makefile.simple and custom/Makefile.simple files. Now, a make that supports makefile conditional syntax is required. The simple target, a target that only was used for Makefile.simple was removed. Moved makefile variables that configure calc and configure how to compile calc from Makefile into a new Makefile.config file. The Makeifle includes the Makefile.config file. The cal/Makeifle includes the Makefile.config file. The cscript/Makeifle includes the Makefile.config file. The custom/Makeifle includes the Makefile.config file. The help/Makeifle includes the Makefile.config file. Now, the Makefile.config file will consistently configure calc and how calc is compiled and built by all calc Makefiles. The custom/Makefile no longer includes Makefile. The platform target section from the old Makefile has been moved to a new file, Makefile.target. Improved the format and comments in target information. The Makeifle includes the Makefile.target file. The cal/Makeifle includes the Makefile.target file. The cscript/Makeifle includes the Makefile.target file. The custom/Makeifle includes the Makefile.target file. The help/Makeifle includes the Makefile.target file. Now, the Makefile.target file will consistently set target information for all calc Makefiles. The cal/Makeifle includes the Makefile.local file. The cscript/Makeifle includes the Makefile.local file. The custom/Makeifle includes the Makefile.local file. The help/Makeifle includes the Makefile.local file. Thus, one may modify or append many Makefile variables in all calc Makefiles. Removed the ${CAL_PASSDOWN}, ${HELP_PASSDOWN}, ${HELP_PASSDOWN}, ${CSCRIPT_PASSDOWN} Makefile variables as the new Makefile include files keep Makefile variables in sync. Fixed the ability of calc to compile when CUSTOM is undefined (i.e., -UCUSTOM). The libcustcalc is always built, regardless of the $(ALLOW_CUSTOM} Makefile variable. However when CUSTOM is undefined, the bulk of custom functions are not defined. Dropped the use of Makefile variable ${SET_INSTALL_NAME}. Under macOS it was always needed, elsewhere it was not. Added Makefile variable ${VER} to hold the calc major release version. The calc major release version is a 3 level version (x.y.z). Under macOS, the current version of both libcalc and libcustcalc shared libraries are set to the current calc major release version. Under macOS, to reduce dependency chains, we remove functions and data that are unreachable by the entry point or exported symbols. In particular, the macOS linker is used with "-dead_strip" by default. While calc on macOS will execute if linker used with "-dead_strip_dylibs" and CUSTOM is defined, other applications that use libcalc but not libcustcalc (such as sample_many and sample_rand) will fail to execute due to missile symbols. Therefore "-dead_strip_dylibs" is not used by default when ALLOW_CUSTOM is "-DCUSTOM" under macOS. Thanks to GitHub user @TurtleWilly for bringing to our attention, problems related to use of "-dead_strip_dylibs". When installing shared libraries, libcalc.x.y.z will be a link to the libcalc shared library and libcustcalc.x.y.z will be a link to the libcustcal shared library. |
||
|
faf3a4fab6 |
fix macOS use of -dead_strip_dylibs, install major version lib symlinks.
Under macOS, to reduce dependency chains, we remove functions and data that are unreachable by the entry point or exported symbols. In particular, the macOS linker is used with "-dead_strip" by default. While calc on macOS will execute if linker used with "-dead_strip_dylibs" and CUSTOM is defined, other applications that use libcalc but not libcustcalc (such as sample_many and sample_rand) will fail to execute due to missile symbols. Therefore "-dead_strip_dylibs" is not used by default when ALLOW_CUSTOM is "-DCUSTOM" under macOS. Thanks to GitHub user @TurtleWilly for bringing to our attention, problems related to use of "-dead_strip_dylibs". When installing shared libraries, libcalc.x.y.z will be a link to the libcalc shared library and libcustcalc.x.y.z will be a link to the libcustcal shared library. |
||
|
af9b052fe9 |
fixed -dead_strip_dylibs for macOS, fixed macOS lib version numbers
Added Makefile variable ${VER} to holdthe calc major release version. The calc major release version is a 3 level version (x.y.z). Under macOS, the current version of both libcalc and libcustcalc are set to the current calc major release version. Under macOS, to reduce dependency chains, we remove functions and data that are unreachable by the entry point or exported symbols. In particular, the linker is run with "-dead_strip" and with "-dead_strip_dylibs". |
||
|
92c8d89ed1 | cleanup Makefile comments | ||
|
21ab25d1c9 |
add Makefile.config, change all Makefile includes
Moved makefile variables that configure calc and configure how to compile calc from Makefile into a new Makefile.config file. The Makeifle includes the Makefile.config file. The cal/Makeifle includes the Makefile.config file. The cscript/Makeifle includes the Makefile.config file. The custom/Makeifle includes the Makefile.config file. The help/Makeifle includes the Makefile.config file. Now, the Makefile.config file will consistently configure calc and how calc is compiled and built by all calc Makefiles. The platform target section from the old Makefile has been moved to a new file, Makefile.target. The custom/Makefile no longer includes Makefile. The Makeifle includes the Makefile.target file. The cal/Makeifle includes the Makefile.target file. The cscript/Makeifle includes the Makefile.target file. The custom/Makeifle includes the Makefile.target file. The help/Makeifle includes the Makefile.target file. Now, the Makefile.target file will consistently set target information for all calc Makefiles. The cal/Makeifle includes the Makefile.local file. The cscript/Makeifle includes the Makefile.local file. The custom/Makeifle includes the Makefile.local file. The help/Makeifle includes the Makefile.local file. Thus, one may modify or append many Makefile variables in all calc Makefiles. |