Version 0.5.8.xx consists of the following Builds: Build #2017 -- Version 0.5.8.xx ------------------------------- * Fix Bug In MemberOf When Comparing Certain Non-Simple Items Directory branches/bsmith/NewTypes/htdocs/download: CONVERT.C: Collapse into calls to . In , handle non-finite numbers specially. PF_EPSILON.C: In re-order the tests so as to pick up simple/global numerics first. PF_EQUALUND.C: Fix bug in where, under certain circumstances, only the first item is tested. PO_DOT.C: PO_JOTDOT.C: PO_SLASH.C: Include additional argument to both and so as to skip freeing the result as appropriate. PRIMSPEC.C: Include additional argument to both and so as to skip freeing the result as appropriate. In , avoid clobbering the result global memory handle if it is nested. Build #2015 -- Version 0.5.8.xx ------------------------------- * Update Download Page For Workspaces And Alpha Version Directory branches/bsmith/NewTypes/htdocs/download: DOWNLOAD-BODY.PHP: DOWNLOAD-LEFT.HTML: Update download page for Alpha version now contains Ball Arithmetic, and new section on Workspaces. Build #2013 -- Version 0.5.8.xx ------------------------------- * Fix A Bug Where A Type Promotion Can Crash Because We're Freeing An Incomplete Var Directory branches/bsmith/NewTypes: PRIMSPEC.C: In , if a type promotion occurs, free the result as an incomplete var. Build #2011 -- Version 0.5.8.xx ------------------------------- * When Converting FLT to INT, Mark NaNs As Non-Integral Directory branches/bsmith/NewTypes: CONVERT.C: In , handle NaNs as non-integral. In , pass through to . Build #2009 -- Version 0.5.8.xx ------------------------------- * Handle -0 In More Cases Directory branches/bsmith/NewTypes: CR_PROC.C: When calling or , pass the sign in case the result is FLT. MPFNS.C: In , improve comments. In , return Boolean value in case the result should be -0 but MPIR doesn't support that representation. MPIFNS.C: In , signal RESULT_VFP if the signs are different. PF_COLONBAR.C: When calling or , pass the sign in case the result is FLT. If a call to returns FALSE, convert the result to VFP. When dividing, if the imaginary parts are zero, treat as dividing by a single Real number. TRANSLATE.C: In , handle -0 if allowed. Build #2007 -- Version 0.5.8.xx ------------------------------- * In , Signal DOMAIN ERROR If No Identity Element Directory branches/bsmith/NewTypes: IDENTFNS.C: In , change NONCE to DOMAIN error. Build #2005 -- Version 0.5.8.xx ------------------------------- * Implement Missing Syntax NAM F {is} NF Directory branches/bsmith/NewTypes: PARSELINE.C: PARSELINE.H: Implement missing syntax NAM F {is} NF. Use WFCN instead of the literal function name. Build #2003 -- Version 0.5.8.xx ------------------------------- * Handle NaNs The Same as Signed Infinities As Requiring FLT Result Directory branches/bsmith/NewTypes: PF_USTILE.C: Improve comments. In , handle NaNs along with the signed Infinities as requiring a FLT result. TYPEMOTE.C: In , handle NaNs along with the signed Infinities as requiring a FLT result. Build #2001 -- Version 0.5.8.xx ------------------------------- * TypeDemote Nested Scan Data Directory branches/bsmith/NewTypes: PO_SLOPE.C: TypeDemote intermediate results of nested Scans, but not so far as to an immediate. Build #1999 -- Version 0.5.8.xx ------------------------------- * Allow Accented Chars In []EX, )ERASE, etc. Directory branches/bsmith/NewTypes: DEFINES.H: Surround the #include "defines.h" with #ifndef NOQUADA/#endif to avoid problems with the Resource Compiler. Split out the accented alphabets into separate #defines. MAIN.RC: VER.RC: Surround the #include "defines.h" with #ifndef NOQUADA/#endif to avoid problems with the Resource Compiler. QF_A.C: Improve comments. QF_NC.C: ASlow accented chars in []EX, )ERASE, etc. SYSVARS.C: Split out the accented alphabets into separate #defines. Build #1997 -- Version 0.5.8.xx ------------------------------- * Define Identity Elements For Left/Right Tack Functions Directory branches/bsmith/NewTypes: INITDATA.C: PF_LTACK.C: PF_RTACK.C: Define identity elements for Left/Right Tack functions. Build #1995 -- Version 0.5.8.xx ------------------------------- * Full Support For NaNs, Remove From []FEATURE Directory branches/bsmith/NewTypes: EXTERNS.H: MACROS.H: PF_CIRCLE.C: PF_CIRCLE.MAC: PF_DOMINO.C: PF_STAR.C: PRIMSPEC.C: Full support for NaNs, remove from []FEATURE. Build #1993 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Epsilon On Non-Simple Datatypes Directory branches/bsmith/NewTypes: PF_EPSILON.C: Fix bug in Epsilon function on non-simple datatypes. Build #1991 -- Version 0.5.8.xx ------------------------------- * Implement Variant For Grade Functions To Grade All Arrays Directory branches/bsmith/NewTypes: PO_VARIANT.C: PO_VARIANT.H: Implement a Variant of the Grade functions to grade all arrays. Improve comments. Build #1989 -- Version 0.5.8.xx ------------------------------- * In Compress Multiple Calls To To One Directory branches/bsmith/NewTypes: TYPEMOTE.C: In compress multiple calls to to one. Build #1987 -- Version 0.5.8.xx ------------------------------- * Fix Bug In {jot}{QuadJot} Not Handling Nested Scalars Directory branches/bsmith/NewTypes: DATATYPE.H: Improve documentation. GETFNS.C: Delete unused function . Improve comments. Implement function In , handle the token . HC_PROC.H: Define translate table just like except APA -> APA. PO_QUADJOT.C: Fix bug in {jot}{QuadJot} not handling nested scalars. Fix bug in {jot}{QuadJot} not copying HCxR and HCxV CHO numbers. Improve comments. PRIMFNS.C: In handle the token . Build #1985 -- Version 0.5.8.xx ------------------------------- * Recode Unique in C Instead Of Using A Magic Function * Fix Bug In With HC2F Values Near To Each Other, But In An Unusual Order. * Fix Bug In With HETERO/NESTED v. non-HETERO/NESTED. Directory branches/bsmith/NewTypes: EXECMFN.C: EXECMFN.H: MF_DSHOE.H: Remove Magic Function for Monadic DownShoe (Unique). PF_DSHOE.C: In IF/WHILE stmts always compare ptr against NULL and value against 0. Recode Unique in C instead of using a Magic Function. PF_IOTA.C: Define function to control whether or not demotes its result. Fix bug in with HC2F values near to each other, but in an unusual order. Fix bug in with HETERO/NESTED v. non-HETERO/NESTED. Build #1983 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Each/JotDot Operators Returning All NoDisplay Results Directory branches/bsmith/NewTypes: PO_DIERESIS.C: PO_JOTDOT.C: Fix bug in Each/JotDot Operators returning all NoDisplay results but not marking its result as NoDisplay. Build #1981 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Modulus Wth Negative Left Argument Directory branches/bsmith/NewTypes: PF_STILE.C: Fix bug in Modulus with negative left argument -- the result should be negative! Build #1979 -- Version 0.5.8.xx ------------------------------- * Fix Bug In {floor}{NaN} Directory branches/bsmith/NewTypes: PF_DSTILE.C: Fix bug in {floor}{NaN}. Build #1977 -- Version 0.5.8.xx ------------------------------- * Fix DEBUG Bug When Calling Directory branches/bsmith/NewTypes: PF_DELTASTILE.C: Fix DEBUG bug when calling . Build #1975 -- Version 0.5.8.xx ------------------------------- * Fix Bug In -1 and -2 {Circle} {NaN}i0 Directory branches/bsmith/NewTypes: FPCHO_COM.C: MPCHO_COM.C: Fix bug in -1 and -2 {circle} {NaN}i0. Build #1973 -- Version 0.5.8.xx ------------------------------- * Fix Bug When Re-using a Global Numeric In A Loop Directory branches/bsmith/NewTypes: PRIMSPEC.C: Fix bug wen re-using a Global Numeric in a loop. After freeing the GN, zero it so the next call to MyXXX_init won't fail. Build #1971 -- Version 0.5.8.xx ------------------------------- * Recode Macros As Functions Directory branches/bsmith/NewTypes: PF_STAR.C: Recode the macros from as separate functions. PF_STAR.MAC: Delete this file as its macros are recoded in . Build #1969 -- Version 0.5.8.xx ------------------------------- * Define DEBUG Functions To Display Common Datatypes Directory branches/bsmith/NewTypes: MPFNS.C: Define , , and as helper function to display common datatypes. Build #1967 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Axis Operator With 1+[1 1] 2 3 * Fix Bug In Axis Operator With Named Var With No Value Directory branches/bsmith/NewTypes: AXISFNS.C: Fix bug in Axis Operator with 1+[1 1] 2 3 which overwrites a memory boundary when calculating the axis tail starting point. STRAND.C: In , handle the case where the named var has no value. Build #1965 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Use Of <[mpfr|mpq]_QuadICValue> Directory branches/bsmith/NewTypes: CR_PROC.C: MPFNS.C: MPIFNS.C: PF_BAR.C: PF_COLONBAR.C: PF_CSTAR.C: PF_DCARET.C: PF_PLUS.C: PF_QDOT.C: PF_ROOT.C: PF_STAR.C: PF_STILE.C: PF_TIMES.C: PF_UCARET.C: Fix bug in use of <[mpfr|mpq]_QuadICValue> where we may double initialize a variable. The solution is never to return a value from these functions and always initialize the result inside the function. Build #1964 -- Version 0.5.8.xx ------------------------------- * Merge Previous Builds Build #1963 -- Version 0.5.8.xx ------------------------------- * Fix Bug In ArcSin and ArcCos For Real Arguments Outside [-1,1] Directory branches/bsmith/NewTypes: FPCHO_COM.C: MPCHO_COM.C: Fix bug in ArcSin and ArcCos for Real arguments outside [-1,1]. Build #1962 -- Version 0.5.8.xx ------------------------------- * Fix Bug When Factorial Blows Up To RAT Directory branches/bsmith/NewTypes: PRIMSPEC.C: Fix bug when factorial blows up to RAT with multiple elements in the right arg. Build #1961 -- Version 0.5.8.xx ------------------------------- * Implement Extended Replicate For Negative Integer Left Arguments Directory branches/bsmith/NewTypes: PF_SLASH.C: Implement Extended Replicate with negative values in the left argument. Build #1960 -- Version 0.5.8.xx ------------------------------- * Remove Superfluous Code Directory branches/bsmith/NewTypes: PF_COLONBAR.C: Remove superfluous code. Build #1959 -- Version 0.5.8.xx ------------------------------- * Fix Bugs In Implementation Of Cross Product Directory branches/bsmith/NewTypes: PF_TIMES.C: Improve comments. Fix bugs in implementation of Cross Product where the indices were calculated incorrectly. Build #1958 -- Version 0.5.8.xx ------------------------------- * Change Definition Of 9 and -9 Circle Functions Directory branches/bsmith/NewTypes: PF_CIRCLE.C: PF_CIRCLE.MAC: REBAR.C: Change definition of 9{circle} and -9{circle} to be symmetric and the latter produces a Pure Imaginary number for Hypercomplex numbers. Build #1953 -- Version 0.5.8.xx ------------------------------- * Use Arrays For Lookup Instead Of Functions * Use Common Constants More Instead Of Separate Variables Directory branches/bsmith/NewTypes: DATATYPE.H: Correct file location of co-dependents. Rename to to reflect that it's an array. EXTERNS.H: Improve comments. Delete as it's no longer used. Define as a variable so it may be used to lookup . Define as an array lookup instead of as a function. Delete and variables as they are now defined in terms of common constants. HC_PROC.H: Define and in terms of common constants. TRANSLATE.C: Define as an array lookup instead of as a function. Simplify using . In , include additional translations. Build #1952 -- Version 0.5.8.xx ------------------------------- * When Indexed Assignment Into A SysVar, Call Post-Validation Function On Global Right Args, Too Directory branches/bsmith/NewTypes: PF_INDEX.C: When Indexed Assignment into a SysVar, call Post-Validation function on Global Right Args, too. Build #1951 -- Version 0.5.8.xx ------------------------------- * In Dyadic Shriek Handle Boolean-valued Left Arg Specially Directory branches/bsmith/NewTypes: PF_QDOT.C: In , handle left arg of 0 or 1 specially. Build #1950 -- Version 0.5.8.xx ------------------------------- * Clean Up Code Directory branches/bsmith/NewTypes: PF_ROOT.C: In , make the code parallel to that of . Build #1949 -- Version 0.5.8.xx ------------------------------- * Fix Bug In OverTake On A Heterogeneous Array Where The First Element Is A Global Numeric Directory branches/bsmith/NewTypes: PF_UARROW.C: Fix bug in OverTake on a heterogeneous array where the first element is a Global Numeric. Build #1948 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Monadic Derived Function From Dieresis With Function On Empty Right Arg That Produces No Result Directory branches/bsmith/NewTypes: PO_DIERESIS.C: Fix bug in monadic derived function from Dieresis with function on empty right arg that produces no result (e.g., {execute}). Build #1947 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Inner Product If The Result Of A Reduction Is Of Different Type Than Right Arg Directory branches/bsmith/NewTypes: PO_DOT.C: In for singleton right arg, YYFree the result of LO/RO/,R before continuing. In , assert the Token Header address is valid. Fix bug in after computing each reduction result, if it's immediate, promote the result using the actual IMMTYPE_xxx instead of the right arg type. Build #1946 -- Version 0.5.8.xx ------------------------------- * Disallow Immediate Monadic Scalar Functions In Identity Element Test For Dyadic Scan Directory branches/bsmith/NewTypes: PO_SLASH.C: Disallow immediate monadic scalar functions in identity element test for dyadic scan. Build #1945 -- Version 0.5.8.xx ------------------------------- * Fix Bug When Passing Derived Function With Axis Operator As Left Operand To Scan Directory branches/bsmith/NewTypes: PO_SLOPE.C: Fix bug when passing derived function with axis operator as left operand to scan. Build #1944 -- Version 0.5.8.xx ------------------------------- * Consolidate Code Directory branches/bsmith/NewTypes: PRIMFNS.C: Consolidate code. Build #1943 -- Version 0.5.8.xx ------------------------------- * Fix Bug Of Failure To DimDemote Dyadic Scalar Fn With Scalar Args * Fix Bug When {Equal} Or {NotEqual} Compares A NaN With A Non-NaN Directory branches/bsmith/NewTypes: PRIMSPEC.C: Fix bug of failure to dimdemote dyadic scalar fn with scalar args. Fix bug when {Equal} or {NotEqual} compares a NaN wth a non-NaN. Improve comments. Build #1942 -- Version 0.5.8.xx ------------------------------- * Clean Up Code Directory branches/bsmith/NewTypes: TYPEMOTE.C: Clean up code. Build #1941 -- Version 0.5.8.xx ------------------------------- * Miscellaneous DEBUG Changes Directory branches/bsmith/NewTypes: MAIN.C: Rename function to avoid conflict with the Windows API. QF_NFNS.C: Rename to to avoid conflict with []NA functions. RESDEBUG.H: Reformat #define targets for consistent spacing. Rename to to avoid conflict with []NA functions. SESSMAN.C: Move from to to match where it is destroyed. In , use instead of as the global memory isn't always Wsz. TABCTRL.C: In functions that create Threads, check on the result. Move from to to match where it is destroyed. Improve comments. In , rename Thread DWORD to better reflect its usage. Rename function to avoid conflict with the Windows API. Rename to to avoid conflict with []NA functions. Use macro to describe function name instead of literal. Build #1940 -- Version 0.5.8.xx ------------------------------- * Use Macro To Describe Function Name Instead of Literal Directory branches/bsmith/NewTypes: CR_PROC.C: CS_PARSE.Y: DEBUG.C: EXECDFN.C: EXECFNS.C: FH_PARSE.Y: IMMEXEC.C: MAIN.C: PARSELINE.C: PF_DTACK.C: PF_DTACKJOT.C: PF_IOTAUND.C: PF_PI.C: PF_UTACK.C: PN_PARSE.Y: PN_PROC.C: PO_SLASH.C: RESDEBUG.C: SC_OUT.C: SC_SAVE.C: STRAND.C: SYMTAB.C: TABCTRL.C: TOKENIZE.C: WEBCOLORS.C: Use macro to describe function name instead of literal. Build #1939 -- Version 0.5.8.xx ------------------------------- * Move Up One Line Customize Dialog Page To Common Line Directory branches/bsmith/NewTypes: MAIN.RC: Move up one line Customize dialog page to common line. Extend the GroupBox in Syntax Coloring to encompass entire Group. Build #1938 -- Version 0.5.8.xx ------------------------------- * Insert Missing EXTERN Statements in "Debugging Vars" Section Directory branches/bsmith/NewTypes: EXTERNS.H: Insert missing EXTERN statements in "Debugging Vars" section. Build #1937 -- Version 0.5.8.xx ------------------------------- * Move DEBUG Vars To Common Place * Handle Syntax NAM {is} MOP MOP * Fix Memory Leak In Curried Index Assignment With Multiple Indices * Handle Syntax CS1 With No Right Argument Directory branches/bsmith/NewTypes: CS_PARSE.Y: EXTERNS.H: FH_PARSE.Y: IMMEXEC.C: PN_PARSE.Y: SC_DEBUG.C: TOKENIZE.C: YYFNS.C: Move DEBUG vars to common place. PARSELINE.C: Handle syntax NAM {is} MOP MOP. Move DEBUG vars to common place. Fix memory leak in curried index assignment with multiple indices e.g., NAM[A]...[A]{is}A . Support )DEBUG PLTrace=[0|1]. Change MessageBox modality from APPL to SYSTEM. Fix bug in syntax of CS1 with no right argument. PARSELINE.H: Handle syntax NAM {is} MOP MOP. Build #1936 -- Version 0.5.8.xx ------------------------------- * Assert That The Token Header Address Is Valid Directory branches/bsmith/NewTypes: EXECDFN.C: GOTO.C: Assert that the Token Header address is valid. Build #1935 -- Version 0.5.8.xx ------------------------------- * Fix Bug In []NC On Empty Vectors And Scalar Blanks Directory branches/bsmith/NewTypes: QF_NC.C: Fix bug in NC on empty vectors and scalar blanks. QF_NL.C: Optimize []NL on empty right args. Build #1934 -- Version 0.5.8.xx ------------------------------- * Replace Global E/Gamma/Pi MP Constants With PerTabData Local Ones Directory branches/bsmith/NewTypes: DISPDBG.C: HC_PROC.H: Replace global E/Gamma/Pi MP constants with PerTabData local ones. INITDATA.C: Replace global E/Gamma/Pi MP constants with PerTabData local ones. Note when E/Gamma/Pi constants have been initialized or uninitialized so we don't do it twice. In , correct the PF_xx flags w.r.t. valence and Identity element. MPCHO_COM.C: Replace global E/Gamma/Pi MP constants with PerTabData local ones. Ensure PTD vars are initialized before using. PERTAB.H: Replace global E/Gamma/Pi MP constants with PerTabData local ones. Note when E/Gamma/Pi constants have been initialized or uninitialized so we don't do it twice. PF_CIRCLE.C: Replace global E/Gamma/Pi MP constants with PerTabData local ones. Ensure PTD vars are initialized before using. PF_CSTAR.C: Replace global E/Gamma/Pi MP constants with PerTabData local ones. Ensure PTD vars are initialized before using. PF_STAR.C: Ensure that global numerics are zeroed before initializing. Replace global E/Gamma/Pi MP constants with PerTabData local ones. Omit Pi/2 as a global constant. Ensure PTD vars are initialized before using. PF_STILE.C: Use mp[cho][fi]XXX form of constants instead raw conmp[cho][fi]_XXX. PN_PROC.C: Replace global E/Gamma/Pi MP constants with PerTabData local ones. Ensure PTD vars are initialized before using. Build #1933 -- Version 0.5.8.xx ------------------------------- * Remove Spurious Test For Parenthesized Lists Directory branches/bsmith/NewTypes: MACROS.H: PF_DOMINO.C: PF_DOTDOT.C: PF_DSHOE.C: PF_DTACK.C: PF_DTACKJOT.C: PF_EPSILON.C: PF_EPSUND.C: PF_EQUALUND.C: PF_IOTA.C: PF_IOTAUND.C: PF_LSHOEUND.C: PF_LTACK.C: PF_RHO.C: PF_RSHOEUND.C: PF_RTACK.C: PF_USHOE.C: PF_UTACK.C: PF_UTACKJOT.C: QF_CR.C: QF_DL.C: QF_ERROR.C: QF_ES.C: QF_EX.C: QF_FMT.C: QF_NC.C: QF_NL.C: QF_UCS.C: QF_VR.C: Remove spurious test for parenthesized lists. Build #1932 -- Version 0.5.8.xx ------------------------------- * Extend REALONLY To More Scalar Functions Directory branches/bsmith/NewTypes: PF_DCARET.C: PF_NDCARET.C: PF_NUCARET.C: PF_QUERRY.C: PF_STILE.C: PF_TILDE.C: PF_UCARET.C: Extend REALONLY to more scalar functions. Build #1931 -- Version 0.5.8.xx ------------------------------- * Implement Internal Functions To Calculate Squared Norms Directory branches/bsmith/NewTypes: HC_PROC.C: Implement internal functions to calculate Squared Norms. MACROS.H: Define equates for non-DEBUG calls to Squared Norms. PF_COLONBAR.C: In monadic and dyadic ColonBar functions, call Squared Norms when needed. PF_NEQUAL.C: In monadic NotEqual functions, call Squared Norms as needed. PF_STILE.C: In monadic Magnitude functions, call Squared Norms as needed. In dyadic Residue functions for Quaternions, fix bug where some comparisons are fizzy and some are not. This has the effect of producing different results for FLT and RAT arguments that are otherwise identical, and can be fixed by making more comparisons fuzzy. Build #1930 -- Version 0.5.8.xx ------------------------------- * Fix Bugs In []CR When Passed A Variable Or System Function Directory branches/bsmith/NewTypes: MACROS.H: Define macros to identify IMMTYPE_xxx functions and operators. QF_CR.C: In , return empty result if an immediate input is not a function/operator. In , call separate function to copy the FCN/OPR name of the immediate input to the result. Define new function to copy the name of a internal system function to the result. SYSVARS.C: Define a variable containing the number of rows in so it can be used in other files. Fix typo in comment. In , check for deleted vars before doing it again. In , zap the item just deleted so we don't try to delete it again. Build #1929 -- Version 0.5.8.xx ------------------------------- * Fix Bug When Comparing FLT NaNs And non-NaNs Directory branches/bsmith/NewTypes: CONVERT.C: In , if either arg is a NaN, use the new FLT NaN comparison function. Define new comparison function between NaNs and non-NaNs and use it everywhere so we can produce consistent results. PF_DELTASTILE.C: In , use the new FLT NaN comparison function. Build #1928 -- Version 0.5.8.xx ------------------------------- * Handle NUL In Undo Buffer Insertion Directory branches/bsmith/NewTypes: EDITFCN.C: In IF/WHILE stmts always compare ptr against NULL and value against 0. Rename to so that a search for is unique. In , check for inserting a NULL and replace it with . EXTERNS.H: Rename to so that a search for is unique. Document the co-dependency of and . SAVEFCN.C: Rename to so that a search for is unique. SYMBOLNAMES.H: In , include <{UTF16_REPLACEMENT0000, L"{nul}"}>. Build #1927 -- Version 0.5.8.xx ------------------------------- * Fix Memory Leak Directory branches/bsmith/NewTypes: PN_PROC.C: In , avoid memory leak when creating a VFP Exponential. Delete obsolete commented out code. Build #1926 -- Version 0.5.8.xx ------------------------------- * Fix Bug From Last Build Directory branches/bsmith/NewTypes: EXECMFN.C: SAVEFCN.C: Forgot to leave in code to increment the Logical Line number. More distinguishing between Logical and Physical lines when saving a function. FH_PARSE.H: Define new field in UDFO header to hold the # physical lines. Build #1925 -- Version 0.5.8.xx ------------------------------- * Fix Bug When Saving An Edited Function With Line Continuations Within Certain Control Structures Directory branches/bsmith/NewTypes: CS_PARSE.Y: Distinguish between Logical and Physical lines when saving a function. CS_PROC.C: Assert when loading a Token Header that it really is one. In IF/WHILE stmts always compare ptr against NULL and value against 0. EDITFCN.C: EXECDFN.C: EXECMFN.C: IMMEXEC.C: PF_UTACKJOT.C: SAVEFCN.C: TOKENIZE.C: Distinguish between Logical and Physical lines when saving a function. This fixes a bug when saving an edited function with Line Continuations within certain Control Structures. Build #1924 -- Version 0.5.8.xx ------------------------------- * Define More )DEBUG Commands Directory branches/bsmith/NewTypes: SC_DEBUG.C: Define more )DEBUG commands such as [ON|OFF] to turn the debuger [ON|OFF], and )DEBUG test=[0|1] to define a global test var. Move code to the end. Build #1923 -- Version 0.5.8.xx ------------------------------- * Simplify 64-bit Compiles * Allow Negative Sign In BasePoint Directory branches/bsmith/NewTypes: PN_PARSE.H: Define additional ENUMs to simplify common macros Fix mis-attribution comment. Move from bit field to its own UINT. Change UINT to size_t where it matters for 64-bit compiles. Define various common text strings as opposed to using literals in mutiple places. PN_PARSE.Y: Allow negative sign in BasePoint as 16b-XXX. Simplify 'e' vs. 'E' into its own terminal. Use defined common text strings instead of literals. PN_PROC.C: Fix last column (INIT) of PN_MAT. Change UINT to size_t where it matters for 64-bit compiles. Allow negative sign in BasePoint as 16b-XXX. Improve comments. SC_LOAD.C: Use defined common text strings instead of literals. Build #1922 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Floor Between FLT and RAT Directory branches/bsmith/NewTypes: PF_DSTILE.: Fix bug in Floor where it returns different values for the same value as a FLT vs. as a RAT. The problem is that they used different comparisons, both meant to be exact, but on values that differed by a few ULPs because of the different ways FLT and RAT calculates distances. Now all of those comparisons use []CT. Improve comments. Build #1921 -- Version 0.5.8.xx ------------------------------- * Fix Bug Introduced In Build #1918 Directory branches/bsmith/NewTypes: PF_BAR.C: In build #1918, I overlooked a co-requisite change where the constant 2 should be (now 3) in three exception handlers . Build #1920 -- Version 0.5.8.xx ------------------------------- * Fix Second Bug Introduced In Previous Build Directory branches/bsmith/NewTypes: PRIMSPEC: In the previous build, I omitted a crucial test in the exception handler for the SimpSimp function. Build #1919 -- Version 0.5.8.xx ------------------------------- * Fix Bug Introduced In Previous Build Directory branches/bsmith/NewTypes: PRIMSPEC: In the previous build, I deleted too much in the exception handler for the SimpSimp function. Use WFCN instead of the literal function name. Append \r\n to the end of all text that might be displayed via . Delete unused variables. Build #1918 -- Version 0.5.8.xx ------------------------------- * Promote Large Factorials From FLT To RAT Directory branches/bsmith/NewTypes: ENUMS.H: Define new Exception Codes for HCxR. Move towards replacing "_FLOAT" with "_FLT". Fix mis-attribution in comment. EXCEPT.C: Define new Exception Codes for HCxR. Move towards replacing "_FLOAT" with "_FLT". PF_QDOT.C: Move towards replacing "_FLOAT" with "_FLT". Replace "DOMAIN ERROR" for large Factorials with RAT result. PRIMSPEC: Move towards replacing "_FLOAT" with "_FLT". Handle "EXCEPTION_RESULT_RAT" and friends as a new exception. In , merge similar code in the exception handler. TRANSLATE.C: Move towards replacing "_FLOAT" with "_FLT". Handle "EXCEPTION_RESULT_RAT" and friends as a new exception. Build #1917 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Match And Grade When Comparing Hetero And Nested Arrays Directory branches/bsmith/NewTypes: CONVERT.C: Fix bug in Match and Grade when comparing Hetero and Nested arrays. Build #1916 -- Version 0.5.8.xx ------------------------------- * Prepare For Common Malloc/Free/Realloc Directory branches/bsmith/NewTypes: COMPRO.H: Delete references to "dl" Memory Management as we no longer use it as a substitute memory allocator. DICTIONARY.C: Use common Memory Allocator header. DISPDBG.C: Append CRLF to end of DbgMsg output in case the string goes to which requires that ending. Delete references to "dl" Memory Management as we no longer use it as a substitute memory allocator. DTOA.C: Define macros for Memory Management. HEADERS.H: Use common Memory Allocator header. INIPARSER.C: Use common Memory Allocator header. Comment out instruction which deletes leading spaces from function lines so as to preserve leading spaces when saving to a workspace file. MAKEFILE.INC: MAKEFILE.SRC: NARS2000.VCXPROJ: STARTADDR.H: Delete references to "dl" Memory Management as we no longer use it as a substitute memory allocator. MPFNS.C: PO_COMB.C; RESDEBUG.C: Use common Memory Manager API instead of "dl" prefix versions. NARSMALLOC.H: Define Memory Allocator header. Build #1915 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Quaternion Floor With Hurwitz Integers Directory branches/bsmith/NewTypes: PF_DSTILE.C: Improve comments. Fix bug when coding division using APL-like code instead of C. Fix bug of not initializing to zero GlbNum declarations. Build #1914 -- Version 0.5.8.xx ------------------------------- * Fix Memory Leak In Outer Product When Type Promoting Directory branches/bsmith/NewTypes: PO_JOTDOT.C: Delete list test. Improve comments. In , handle result storage type of Real Only. In , fix memory leak when type promoting. Build #1913 -- Version 0.5.8.xx ------------------------------- * Rename Internal Functions/Macros Directory branches/bsmith/NewTypes: HC_PROC.C: MACROS.H: PF_COLONBAR.C: PF_DOMINO.C: PF_DTACK.C: PF_EPSUND.C: PF_EQUALUND.C: PF_INDEX.C: PF_PI.C: PF_QUERY.C: PF_RHO.C: PF_ROOT.C: PF_SLASH.C: PF_TIMES.C: PF_UTACK.C: PN_PROC.C: PO_DOT.C: PO_MULTISET.C: PO_SLASH.C: PO_VARIANT.C: PRIMSPEC.C: QF_DR.C: QF_FX.C: QF_MF.C: QF_TF.C: SC_SAVE.C: TYPEMOTE.C: Rename internal functions/macros to better reflect their usage. Build #1912 -- Version 0.5.8.xx ------------------------------- * Document Power Operator With Function Right Operands In Language Bar Directory branches/bsmith/NewTypes: REBAR.C: Document the Power operator on the Language Bar, this time with function right operands. Build #1911 -- Version 0.5.8.xx ------------------------------- * Implement Power Operator Except For Inverses Directory branches/bsmith/NewTypes: COMPRO.H: Include prototype file. EXECFNS.C: Recognize the Power operator as a dyadic operator. INITDATA.C: Note that the Power is not implemented (except for Inverses). MAKEFILE.INC: MAKEFILE.SRC: NARS2000.VCXPROJ: NARS2000.VCXPROJ.FILTERS: Include the new source file in the list of files to make. PO_DIJOT.C: Fix typo. PO_DISTAR.C: New source file which implements the Power operator. REBAR.C: Document the Power operator on the Language Bar. STRAND.C: Define helper function to create a new function array appending an operator. YYFNS.C: Define helper function to allocate a new YYRes from an existing token. In , handle the case where the YYRes is not in use. Build #1910 -- Version 0.5.8.xx ------------------------------- * Extend )DEBUG to Other Debug Contexts Directory branches/bsmith/NewTypes: CS_PARSE.Y: FH_PARSE.Y: PN_PARSE.Y: SC_DEBUG.C: Define more DEBUG contexts, this time for CS, FH, and PN tracing. Build #1909 -- Version 0.5.8.xx ------------------------------- * Fix Bug When Comparing Certain Nested Arrays Of Different Depth Directory branches/bsmith/NewTypes: CONVERT.C: Fix bug in when comparing certain Nested arrays of different depth. Build #1908 -- Version 0.5.8.xx ------------------------------- * Clean Up PRIMFLAGS Struc, Part II * Rename Boolean Flags Consistent With Content-Naming Conventions Directory branches/bsmith/NewTypes: EXTERNS.H: FASTBOOL.C: GETFNS.C: INITDATA.C: PO_DOT.C: PO_JOTDOT.C: PO_SLASH.C: PO_SLOPE.C: PRIMSPEC.C: Clean up the PRIMFLAGS struc, part II. Rename Boolean flags to be consistent with content-naming conventions. Build #1907 -- Version 0.5.8.xx ------------------------------- * Clean Up PRIMFLAGS Struc Directory branches/bsmith/NewTypes: EXTERNS.H: GETFNS.C: INITDATA.C: Clean up the PRIMFLAGS struc. Build #1906 -- Version 0.5.8.xx ------------------------------- * Extend )DEBUG to Other Debug Contexts Directory branches/bsmith/NewTypes: IMMEXEC.C: SC_DEBUG.C: TOKENIZE.C: Define more DEBUG contexts, this time for Execution and Tokenization Trace. Build #1905 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Residue Where Internal Calculations Near An Integer Are Not Rounded Directory branches/bsmith/NewTypes: PF_STILE.C: In , , , and , with "A=L/R", IF "A==Floor(A)" return 0 ELSE return "L*(A-Floor(A))" in case "A" and "Floor(A)" are equal within []CT. Build #1904 -- Version 0.5.8.xx ------------------------------- * Fix Bug In DotDot When Calculating the NELM On FP Numbers Directory branches/bsmith/NewTypes: PF_DOTDOT.C: In , use SYS_CT when calculating the NELM of the result given certain Floating Point numbers such as 1.1 0.1..1.4 . Build #1903 -- Version 0.5.8.xx ------------------------------- * Fix Bug When Calling []SI From Within []EA Or []EC Directory branches/bsmith/NewTypes: EXECMFN.H: Define additional $QUAD_xx equates. QF_SI.C: SC_SI.C: Fix bug when calling []SI from within either []EA or []EC. Build #1902 -- Version 0.5.8.xx ------------------------------- * Fix Bug When Branching Inside A []ELX Statement Directory branches/bsmith/NewTypes: GOTO.C: In IF/WHILE stmts always compare ptr against NULL and value against 0. In when winding back the SI stack looking for a UDFO, skip over DFNTYPE_FCNs with a NULL hGlbDfnHdr. In , if a valid UDFO is found, mark is as no longer suspended. Build #1901 -- Version 0.5.8.xx ------------------------------- * Fix Bug When Parsing Named Indexed Assignment Directory branches/bsmith/NewTypes: PARSELINE.C: When cleaning up after parsing, don't free named objects on the left or right parsing stacks which can appear from named indexed assignment, etc. Build #1900 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Nth Prime Function Directory branches/bsmith/NewTypes: PF_PI.C: In , fix bug in Nth Prime function off by one when indexing the table. Build #1899 -- Version 0.5.8.xx ------------------------------- * Fix Bug Indexing A Rank > 1 Array With A Scalar Directory branches/bsmith/NewTypes: PF_INDEX.C: In , fix bug when indexing a rank > 1 array with a scalar: it should signal a RANK ERROR. In , fix bug where the Set argument is nested. Build #1898 -- Version 0.5.8.xx ------------------------------- * Fix Bug When Calling Two Niladic Functions One Of Which Erases The Other Directory branches/bsmith/NewTypes: EXECDFN.C: In , rename to to avoid confusion with names with a similar prefix. EXECFNS.C: Rename to and add another arg so to as allow execution of HGLOBALs. PARSELINE.C: In , handle the case where the first function executed erases the second function. In , execute the functions from right to left. Define which allows execution of a function via its HGLOBAL. Build #1897 -- Version 0.5.8.xx ------------------------------- * Fix Bug In Last Build Directory branches/bsmith/NewTypes: PF_SQUAD.C: In , handle the case when the Set argument is a singleton. Build #1896 -- Version 0.5.8.xx ------------------------------- * Fix Bug When Assigning Into An Array Which Forces Promotion To Hetero Directory branches/bsmith/NewTypes: PF_SQUAD.C: In , handle the case when assigning into a simple non-hetero array which forces promotion to hetero. Build #1895 -- Version 0.5.8.xx ------------------------------- * Extend Index Coalescing To Indexed Assignment And Modified Indexed Assignment Directory branches/bsmith/NewTypes: FREE.C: In IF/WHILE stmts always compare ptr against NULL and value against 0. In , call as the subfunction instead of so as to free curried items as well. PARSELINE.C: Coalesce repeated indices for Indexed Assignment and Modified Indexed Assignment. PF_INDEX.C: Fix bug in , so as to allow indexing into non-singleton set arguments. Build #1894 -- Version 0.5.8.xx ------------------------------- * Extend )DEBUG to Other Debug Contexts Directory branches/bsmith/NewTypes: EXTERNS.H: SC_DEBUG.C: SYMTAB.C: YYFNS.C: Define more DEBUG levels. Build #1893 -- Version 0.5.8.xx ------------------------------- * Fix Bug In 3 []DR On Floating Point Numbers Directory branches/bsmith/NewTypes: QF_DR.C: Fix bug when returning the # bits of precision for floating point numbers -- should be 53 not 64. Duh! Build #1892 -- Version 0.5.8.xx ------------------------------- * Fix Bug In The Magic Operator That Handles APL2's Inner Product * Fix Bug In Magic Function For Dyadic Squad Not Catching LENGTH/AXIS ERROR. * Fix Bug In Various Functions Using The Wrong Character Index * Fix Bug In {enclose} When Enclosing An Empty Which Returns A Non-empty Directory branches/bsmith/NewTypes: AXISFNS.C: In IF/WHILE stmts always compare ptr against NULL and value against 0. Rename to as it sets an Error Message. Move code from to its own subroutine for better maintenance. In , handle although catches it first. COMMON.C: Ensure returns a value with the Pointer Type Bits set. CS_PROC.C: PF_CSTILE.C: PO_DOT.C: Rename to as it does not set an Error Message. DATATYPE.H: Include entry in the struc so we can make copies. DISPDBG.C: In <_ValidObj> test for valid ptr when in DEBUG mode. EXECDFN.C: In , handle tokens as an empty Axis Array. FREE.C: In , handle list arrays with RefCnt. In , handle as a separate token. GETFNS.C: In , handle the same as . MF_DOT.H: Fix bug in the Magic Operator that handles APL2's Inner Product. MF_SQUAD.H: Fix bug in Magic Function for Dyadic Squad not catching a LENGTH/AXIS ERROR. PARSELINE.C: Rename to as it now sets an Error Message. Check for errors from . Change calls to to reflect the above change. PF_COMMA.C: PF_CSLOPE.C: PF_DARROW.C: PF_RSHOE.C: PF_SLASH.C: PF_SLOPE.C: PF_SQUAD.C: PF_UARROW.C: PO_SLOPE.C: Delete test for right arg as a list as doesn't allow it. Improve comments. PO_SLASH.C: QF_DC.C: Improve comments. PF_LSHOE.C: Fix bug in when enclosing an empty which returns a non-empty. Improve comments. PRIMFNS.C: In , handle the same as . In , handle the same as . REFCNT.C: In , handle s. STARTADDR.H: Rename to as it now sets an Error Message. Rename to as it does not set an Error Message. STRAND.C: Rename to as it does not set an Error Message. Fix bug in various functions using the wrong character index. Rename to as it now sets an Error Message. In , handle as an AXIS ERROR. In , set the list array RefCnt. Rename to as it does not set an Error Message. In , increment the RefCnt for list arrays. Build #1891 -- Version 0.5.8.xx ------------------------------- * Implement APL2's Definition Of Inner Product Directory branches/bsmith/NewTypes: AXISFNS.C: PF_INDEX.C: PF_IOTA.C: PF_RSHOE.C: PF_SQUAD.C: Use macro to reference FEATURENDX_NEGINDICES. EXECMFN.C: EXECMFN.H: Initialize new Magic Operator for APL2's definition of Inner Product. EXTERNS.H: Define new []FEATURE value to control use of APL2's definition of Inner Product. FREE.C: STRAND.C: Fix bug of not handling empty axis operator as in {enclose}[]. MACROS.H: Define macro to reference FEATURENDX_NEGINDICES. MAIN.RC: Widen Customize dialog to accommodate wider strings. MF_DOT.H: Define new Magic Operator for APL2's definition of Inner Product. PO_DOT.C: Implement APL2's definition of Inner Product. VER.RC: Increment version # to 0.5.8.xx.