#] #] ********************* #] "d_Qndfs"'QNial [symbol, arg] changes/1_QNial symbol plan.txt' - change names of operators, all QNial #] (not even started work!) # www.BillHowell.ca 07Oct2020 initial from '210929 Qndfs optr symbol changes.ndf' To view this file - use a text editor (not word processor) constant width font (eg courrier 10), tab - 3 spaces # directory "d_Qndfs"'QNial [symbol, arg] changes/' - optrs etc to change symbols across system # '0_QNial symbol notes.txt' # '1_QNial symbol plan.txt' # '3_QNial symbol - draft listings to use for changes.txt' # testing optrs : # for all QNial programming : # "$d_Qtest"'QNial test optrs.ndf' # "$d_Qtest"'QNial test notes.txt' # for the project to revamp all my QNial symbol [name, arg[order, number]] : # "$d_Qtest"'QNial [symbol, arg] changes/' # 'Qndfs optr symbol changes - develop tests.txt' # 'Qndfs optr symbol changes - tools, ToDos.txt' # other .ndf test [files, subDirs] # update all .ndf files # in distant future - object or operator oriented? # [focus, name] on operators, not data? or the reverse? combined operators # worry about this much later, when I have more content # maybe just provide help for all [operator, dataType]s? eg operator_help ['path','read'] etc #24************************24 #24************************24 # Table of Contents, generated with : # $ grep "^#]" "$d_Qndfs""QNial [symbol, arg] changes/1_QNial symbol plan.txt" | sed 's/^#\]/ /' # ********************* loaddefs link d_Qndfs 'QNial [symbol, arg] changes/1_QNial symbol plan.txt' - change names of operators, all QNial (not even started work!) optr_names_raw - conversion table for optr names, still have to fix all arg[number, order]s [new, modified]cart[optr, expr]s transferred to ndf files : Table of contents, 'QNial optr symbol changes.ndf' - work currently under way The PLAN - instructions are here for ease of reference when coding 24************************24 08********08 #] ??Apr2022 08********08 #] ??Apr2022 08********08 #] ??Apr2022 08********08 #] ??Apr2022 08********08 #] ??Apr2022 08********08 #] ??Apr2022 #] 04Apr2022 resume work - where am I? # directory "d_Qndfs"'QNial [symbol, arg] changes/' - optrs etc to change symbols across system # '0_QNial symbol notes.txt' # '1_QNial symbol plan.txt' # '3_QNial symbol - draft listings to use for changes.txt' # testing optrs : # for all QNial programming : # "$d_Qtest"'QNial test optrs.ndf' # "$d_Qtest"'QNial test notes.txt' # for the project to revamp all my QNial symbol [name, arg[order, number]] : # "$d_Qtest"'QNial [symbol, arg] changes/' # 'Qndfs optr symbol changes - develop tests.txt' # 'Qndfs optr symbol changes - tools, ToDos.txt' # other .ndf test [files, subDirs] sequencing of testing follows p_Qsetup= link d_Qndfs 'QNial setup.ndf' # standard loaddefs : EACH loaddefs (link d_Qndfs 'QNial setup - header.ndf') (link d_symbols 'QNial userWkspSymbol header.ndf') (link d_symbols 'QNial userWkspSymbol.ndf') * (link d_Qndfs 'types.ndf') - spread out in files below? * (link d_Qndfs 'faults.ndf') - used by [op, test]s, errMsgs 'faults - header.ndf'? (link d_Qndfs 'boolean.ndf') - OK [ops, clus] (link d_Qndfs 'arrays.ndf') - OK [ops, group, clus] (link d_Qndfs 'lists.ndf') - NYET - in [ary,str]s? (link d_Qndfs 'strings.ndf') - OK [ops, group, clus] (link d_Qndfs 'file_ops.ndf') - special style, need to udate AFTER fix optrs above (link d_Qndfs 'windows.ndf') - NYET nothing yet (link d_Qndfs 'encryption.ndf') - NYET nothing yet (link d_Qndfs 'math - [quick, handy] stuff.ndf') - NYET nothing yet Also, many other [op, group, clus]... Legend : * a few tests in .ndf file check "$d_Qtest"'?clusterName?/test results' : each file is for a group of tests of a specific operator Is the cluster test optr working? 08********08 #] 04Apr2022 'QNial test notes.txt' - sequencing of testing follows link d_Qndfs 'QNial setup.ndf' - define setup of Howell's QNial workspace #24************************24 #] Where am I? - approaches to finding oneself in "QNial symbols" project 1. startup QNial, and look at loaddef errors $ qnial 2. fix loaddefs errors (sometimes cannot do all until much later) 3. run "$d_Qtest"s #24************************24 #] The PLAN # Rather than a trivial plan, an ever-evolving list of [instruction, intended outputL]s (below) # I need to develop code as I go, of course... # p_opSymChgL = 'QNial optr symbol changes.ndf' # wrt = with respect to # # Part 0 - userSyms[[Optr,Expr,Ident,Var]L, [Optr,Expr]InDefnL] # these are of potential general use, so move to 'QNial setup.ndf' after these work OK # also produces global variables [userSymOptrL userSymExprL userSymIdentL userSymVarL] # 16Oct2021 these are current work items, see past changes above in section : # [new, modified]cart[optr, expr]s arising from work on "QNial [symbol, arg] changes/1_QNial symbol plan.txt" +-----+ list of [expression, operator, transformer]s [create, modify]d for 'QNial optr symbol changes.ndf' project see 'QNial [symbol, arg] changes/1_QNial symbol plan.txt' +-----+ [new, modified] code for file_ops.ndf path_isEmpty IS OP path - returns 1 if path exists and is empty +-----+ [new, modified] code for 'QNial setup.ndf' user symbols in QNial's global workspace qNial_get_userSymLL IS - extract lists of user symbols in the QNial workspace, as global data symTypePhr includes ["op, "expr, "var, "ident] path_getOptrExpr_declDescLines IS OP path - find user [op,expr]cart[Decl,Desc]s in path path_getOptrExpr_declDescLines_output IS OP applyArgs - path_getOptrExpr_declDescLines_test IS - find opDecls in path, recursive find user [op,expr] symPhr_symType_extract_userSymsInDefnL IS OP symPhr symTypePhr - recursively extract a list of user-defined [optr, expr]s that are ultimately used by symPhr # Part I - changes to opInvolvedInSymChgL - all p_opSymChgL optrName changes # Phase 1 - opInvolvedInSymChgL - all p_opSymChgL optrs & their 'IS OP' declarations # opInvolvedInSymChgL <= [recursive, cumulative]L of all p_opSymChgL optrs # optrDeclL <- extract from ALL ndf files opInvolvedInSymChgL 'IS OP' declarations # Phase 2 - for EACH optrDeclL : extractCodeLinesOptrUsage - res ipsa loquitor # change all listed optr names # Phase 3 - test and make changes required to reliably change opInvolvedInSymChange # loaddefs checks # run large list of _tests using # "$d_Qtest""fileops/[test, std, result] files/test- [QNial setup, booan, array, strings, fileops].ndf" # # Part II - changes to opInvolvedInSymChgL - all p_opSymChgL optrName changes # Phase 1 - opInvolvedInSymChange_[firm, good, maybe, manual] # <- "[tri, quadr]age" opInvolvedInSymChangeL wrt arg[order, number] # some code is too difficult to automate - but reduce the number that REQUIRE manual intervention # Phase 2 - opInvolvedInSymChange_[good, ?maybe?] -> auto-change arg[order, number] or errors # generate test list of changes, sample-check to see how this goes # check that BOTH optr [description, declaration] lines are captured # these should have the same (gage shape) # exclude [one-arg-only, ???] symDeclarations # move opInvolvedInSymChange_[good, ?maybe?] that aren't "comfortable" to opInvolvedInSymChange_manual # Phase 3 - opInvolvedInSymChange_manual -> manually change arg[order, number] # was Phase III even helpful? # possibly "semi-automate" [open source file, goto lines of concern] # manually change arg[order, number] # Phase 4 - test and make changes required to reliably opInvolvedInSymChange # loaddefs checks # test several optrs to see that changes are appropriate # run large list of _tests ! # Part III - change ALL user optrs as required # upgrade optr_names_raw, the list of ALL [oprt, codeLine]s requiring changes # rerun Phases [I, II] for all user optrs # address anomalies #24************************24 #08********08 #] 16Oct2021 Table of contents, 'QNial optr symbol changes.ndf' - work currently under way ********************* loaddefs link d_Qndfs 'QNial optr symbol changes.ndf' - change optr names for [clarity, consistency] +-----+ list of new operators (optrs) +-----+ userSyms[[Optr,Expr,Ident,Var]L, [Optr,Expr]InDefnL] qNial_get_userSymLL IS - extract lists of user symbols in the QNial workspace, as global data symTypePhr includes ["op, "expr, "var, "ident] path_isEmpty IS OP path - returns 1 if path exists and is empty path_getOptrExpr_declDescLines IS OP path - find user [op,expr]cart[Decl,Desc]s in path path_getOptrExpr_declDescLines_output IS OP applyArgs - path_getOptrExpr_declDescLines_test IS - find opDecls in path, recursive find user [op,expr] symPhr_symType_extract_userSymsInDefnL IS OP symPhr symTypePhr - recursively extract a list of user-defined [optr, expr]s that are ultimately used by symPhr +-----+ optr 'IS OP' name changes en masse opInvolvedInSymChg_test IS - run tests on optrs used in opInvolvedInSymChg these have to work well +-----+ optr changes to arg[order, number] opPhr_dTarget_get_codeLineL IS OP opPhr dTarget - ??? opPhrPathLinenum_stdArgs_changeArgOrderNumber IS OP opPhrPathLinenum stdArgs - auto-change arg[order, number] and generate errors intended only for [good, maybe] code lines opPhrPathLinenum_stdArgs_changeArgOrderNumber IS OP opPhrPathLinenumL stdArgs - auto-change arg[order, number] and generate errors +-----+ Expression name [consolidate, change]s #08********08 #] 13Oct2021 [new, modified]cart[optr, expr]s transferred to ndf files : I forgot to write down many others transferred ... boolean.ndf boolA_cut_ary IS OP boolA ary - extract an ary (array) of subArys from booleanL array, table.ndf atomA_restructSameAs_ary IS OP atomA ary - only effective for top-most structure of ary strings.ndf strL_cutBy_chrL IS OP strL chrL - cut each strL by all chrL, omitting chrL, lists only (not arys) fileops.ndf pZarchive_restore IS OP path - restore most recent path_backupDatedTo_zArchive of a file, pathL_replace_wordL IS OP pathL wordOldNewL flag_word flag_backup - change [str, word]L each pathL pathL_replace_strL IS OP pathL wordOldNewL flag_backup - change strL each pathL pathL_strL_grepOptions_linesTo_pout IS OP pathL strL grepOptions pout - search for strL in pathL # enddoc