aboutsummaryrefslogtreecommitdiffhomepage
path: root/org/ao_output_debugs.org
diff options
context:
space:
mode:
Diffstat (limited to 'org/ao_output_debugs.org')
-rw-r--r--org/ao_output_debugs.org402
1 files changed, 402 insertions, 0 deletions
diff --git a/org/ao_output_debugs.org b/org/ao_output_debugs.org
new file mode 100644
index 0000000..c84ab82
--- /dev/null
+++ b/org/ao_output_debugs.org
@@ -0,0 +1,402 @@
+#+TITLE: Emacs config file written in org-mode
+#+AUTHOR: Ralph Amissah
+#+EMAIL: ralph.amissah@gmail.com
+#+STARTUP: indent
+#+LANGUAGE: en
+#+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil -:t f:t *:t <:t
+#+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
+#+OPTIONS: author:nil email:nil creator:nil timestamp:nil
+#+OPTIONS: ^:nil _:nil#+OPTIONS: ^:nil _:nil
+#+EXPORT_SELECT_TAGS: export
+#+EXPORT_EXCLUDE_TAGS: noexport
+#+TAGS: Amissah(A) Class(c) WEB(W) noexport(n)
+
+* output debugs
+** (parent)
+#+name: ao_output_debugs
+#+BEGIN_SRC d :exports none
+debug(parent) {
+ writeln(__FILE__, ":", __LINE__);
+ foreach (obj; contents) {
+ if (obj["use"] == "content") {
+ if (obj["is"] == "heading") {
+ writeln(scr_txt_marker["cyan"],
+ obj["ocn"],
+ " node: ", obj["node"],
+ " heading: ", obj["lvn"],
+ " ", obj["obj"],
+ );
+ } else {
+ }
+ }
+ }
+}
+#+end_src
+** (objects)
+#+name: ao_output_debugs
+#+BEGIN_SRC d :exports none
+debug(objects) {
+ writeln("-------------------------------");
+ writeln(__FILE__, ":", __LINE__);
+ foreach (obj; contents) {
+ if (obj["use"] == "content") {
+ writeln(
+ scr_txt_color["green"],
+ "* [", obj["ocn"], "]",
+ "[", obj["is"], "] ",
+ scr_txt_color["off"],
+ obj["obj"]
+ );
+ }
+ }
+}
+#+end_src
+** (headermakejson)
+#+name: ao_output_debugs
+#+BEGIN_SRC d :exports none
+debug(headermakejson) {
+ writeln("document header, metadata & make instructions:");
+ writeln(dochead);
+ writeln(pointer_head_main);
+ foreach (main_header; pointer_head_main) {
+ switch (main_header) {
+ case "make":
+ foreach (sub_header; pointer_head_sub_make) {
+ if (to!string(dochead[main_header][sub_header]).length > 2) {
+ writeln(
+ main_header, ":",
+ sub_header, ": ",
+ dochead[main_header][sub_header]
+ );
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+}
+#+end_src
+** (headermetadatajson)
+#+name: ao_output_debugs
+#+BEGIN_SRC d :exports none
+debug(headermetadatajson) {
+ writeln("document header, metadata & make instructions:");
+ writeln(dochead);
+ writeln(pointer_head_main);
+ foreach (main_header; pointer_head_main) {
+ switch (main_header) {
+ case "creator":
+ foreach (sub_header; pointer_head_sub_creator) {
+ if (to!string(dochead[main_header][sub_header]).length > 2) {
+ writeln(main_header, ":",
+ sub_header, ": ",
+ dochead[main_header][sub_header]
+ );
+ }
+ }
+ break;
+ case "title":
+ foreach (sub_header; pointer_head_sub_title) {
+ if (to!string(dochead[main_header][sub_header]).length > 2) {
+ writeln(main_header, ":",
+ sub_header, ": ",
+ dochead[main_header][sub_header]
+ );
+ }
+ }
+ break;
+ case "rights":
+ foreach (sub_header; pointer_head_sub_rights) {
+ if (to!string(dochead[main_header][sub_header]).length > 2) {
+ writeln(main_header, ":",
+ sub_header, ": ",
+ dochead[main_header][sub_header]
+ );
+ }
+ }
+ break;
+ case "date":
+ foreach (sub_header; pointer_head_sub_date) {
+ if (to!string(dochead[main_header][sub_header]).length > 2) {
+ writeln(main_header, ":",
+ sub_header, ": ",
+ dochead[main_header][sub_header]
+ );
+ }
+ }
+ break;
+ case "original":
+ foreach (sub_header; pointer_head_sub_original) {
+ if (to!string(dochead[main_header][sub_header]).length > 2) {
+ writeln(main_header, ":",
+ sub_header, ": ",
+ dochead[main_header][sub_header]
+ );
+ }
+ }
+ break;
+ case "classify":
+ foreach (sub_header; pointer_head_sub_classify) {
+ if (to!string(dochead[main_header][sub_header]).length > 2) {
+ writeln(main_header, ":",
+ sub_header, ": ",
+ dochead[main_header][sub_header]
+ );
+ }
+ }
+ break;
+ case "identifier":
+ foreach (sub_header; pointer_head_sub_identifier) {
+ if (to!string(dochead[main_header][sub_header]).length > 2) {
+ writeln(main_header, ":",
+ sub_header, ": ",
+ dochead[main_header][sub_header]
+ );
+ }
+ }
+ break;
+ case "notes":
+ foreach (sub_header; pointer_head_sub_notes) {
+ if (to!string(dochead[main_header][sub_header]).length > 2) {
+ writeln(main_header, ":",
+ sub_header, ": ",
+ dochead[main_header][sub_header]
+ );
+ }
+ }
+ break;
+ case "publisher":
+ foreach (sub_header; pointer_head_sub_publisher) {
+ if (to!string(dochead[main_header][sub_header]).length > 2) {
+ writeln(main_header, ":",
+ sub_header, ": ",
+ dochead[main_header][sub_header]
+ );
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+}
+#+end_src
+** (bookindex)
+#+name: ao_output_debugs
+#+BEGIN_SRC d :exports none
+debug(bookindex) {
+ writeln("-------------------------------");
+ writeln(__FILE__, ":", __LINE__);
+ auto bookindex = new BookIndexReport();
+ bookindex.bookindex_report_sorted(bookindex_unordered_hashes);
+}
+#+end_src
+** (summary) [+1]
+#+name: ao_output_debugs
+#+BEGIN_SRC d :exports none
+debug(summary) {
+ string[string] check = [
+ "last_ocn" : "NA [debug \"checkdoc\" not run]",
+ ];
+#+end_src
+*** (checkdoc)
+#+name: ao_output_debugs_summary
+#+BEGIN_SRC d :exports none
+debug(checkdoc) {
+ foreach (obj; contents) {
+ if (obj["use"] == "content") {
+ if (!empty(obj["ocn"])) {
+ check["last_ocn"] = obj["ocn"];
+ }
+ }
+ }
+}
+#+end_src
+*** (headings)
+#+name: ao_output_debugs_summary
+#+BEGIN_SRC d :exports none
+debug(headings) {
+ writeln("-------------------------------");
+ writeln(__FILE__, ":", __LINE__);
+ foreach (obj; contents) {
+ if (obj["is"] == "heading") {
+ writeln(
+ scr_txt_marker["yellow"],
+ obj["lev"], "~ ",
+ "[", obj["ocn"], "] ",
+ obj["obj"]
+ );
+ }
+ }
+}
+writeln(
+ scr_txt_color["green"],
+ "-------------------------------",
+ scr_txt_color["off"],
+ "\n", fn_src,
+ "\nlength contents array: ", contents.length,
+ "\nlast ocn: ", check["last_ocn"],
+ "\nlength bookindex: ", bookindex_unordered_hashes.length,
+ "\n", __FILE__, ":", __LINE__,
+);
+#+end_src
+*** compare number of ocn for known sisu markup output (checkdoc)
+#+name: ao_output_debugs_summary
+#+BEGIN_SRC d :exports none
+debug(checkdoc) {
+ if (auto mfn=match(fn_src, rgx.src_fn)) {
+ if (actions["assert"] == "yes") {
+ switch (mfn.captures[2]) {
+ case "live-manual.ssm":
+ assert(check["last_ocn"] ==
+ "1019","last ocn should be: 1019 (check test, document is frequently updated)"); // ok
+ break;
+ case "sisu_markup.sst":
+ assert(check["last_ocn"] ==
+ "297","last ocn should be: 297"); // ok
+ // assert(check["last_ocn"] == "297","last ocn should be: 297");
+ // notes for first divergance study sisu headings 247 250
+ // sisu has issue with code that contains heading 1~ which results in no ocn! ??
+ // sisu currently has incorrect last body ocn of 294!
+ // bug in sisu? attend
+ break;
+ // sisu-markup-samples:
+ case "accelerando.charles_stross.sst":
+ assert(check["last_ocn"] ==
+ "2861","last ocn should be: 2861"); // ok
+ break;
+ case "alices_adventures_in_wonderland.lewis_carroll.sst":
+ assert(check["last_ocn"] ==
+ "805","last ocn should be: 805"); // 808
+ break;
+ case "autonomy_markup0.sst":
+ assert(check["last_ocn"] ==
+ "77","last ocn should be: 77"); // ok endnotes
+ // assert(check["last_ocn"] == "78","last ocn should be: 78");
+ break;
+ case "content.cory_doctorow.sst":
+ assert(check["last_ocn"] ==
+ "953","last ocn should be: 953"); // 1007 way off, check ocn off switches
+ // assert(check["last_ocn"] == "953","last ocn should be: 953");
+ break;
+ case "democratizing_innovation.eric_von_hippel.sst":
+ // fixed ERROR! range violation, broken check! endnotes, bookindex, biblio
+ // error in bookindex ... (ch1; ch6; ch8 )
+ assert(check["last_ocn"] ==
+ "905","last ocn should be: 905"); // 911
+ break;
+ case "down_and_out_in_the_magic_kingdom.cory_doctorow.sst":
+ assert(check["last_ocn"] ==
+ "1417","last ocn should be: 1417"); // 1455 check ocn off switches
+ break;
+ case "for_the_win.cory_doctorow.sst":
+ assert(check["last_ocn"] ==
+ "3510","last ocn should be: 3510"); // 3569 check ocn off switches
+ break;
+ case "free_as_in_freedom_2.richard_stallman_and_the_free_software_revolution.sam_williams.richard_stallman.sst":
+ assert(check["last_ocn"] ==
+ "1082","last ocn should be: 1082"); // check 1079 too few
+ break;
+ case "free_culture.lawrence_lessig.sst":
+ assert(check["last_ocn"] ==
+ "1330","last ocn should be: 1330"); // 1312
+ // fixed ERROR! range violation, broken check!
+ // error in bookindex ... sections piracy (ch1) & property (ch10 market concentration) fixed
+ break;
+ case "free_for_all.peter_wayner.sst": // endnotes, bookindex, biblio
+ assert(check["last_ocn"] ==
+ "1559","last ocn should be: 1559"); // 1560, check ocn off switches, has endnotes so 2 too many
+ // assert(check["last_ocn"] == "1559","last ocn should be: 1559");
+ break;
+ case "gpl2.fsf.sst":
+ assert(check["last_ocn"] ==
+ "65","last ocn should be: 65"); // ok endnotes? check
+ // assert(check["last_ocn"] == "66","last ocn should be: 66");
+ break;
+ case "gpl3.fsf.sst":
+ assert(check["last_ocn"] ==
+ "123","last ocn should be: 123"); // ok
+ break;
+ case "gullivers_travels.jonathan_swift.sst":
+ assert(check["last_ocn"] ==
+ "668","last ocn should be: 668"); // 674
+ break;
+ case "little_brother.cory_doctorow.sst":
+ assert(check["last_ocn"] ==
+ "3130","last ocn should be: 3130"); // 3204, check ocn off switches
+ break;
+ case "the_cathedral_and_the_bazaar.eric_s_raymond.sst":
+ assert(check["last_ocn"] ==
+ "258","last ocn should be: 258"); // ok
+ break;
+ case "the_public_domain.james_boyle.sst":
+ assert(check["last_ocn"] ==
+ "970","last ocn should be: 970"); // 978
+ break;
+ case "the_wealth_of_networks.yochai_benkler.sst": // endnotes, bookindex
+ assert(check["last_ocn"] ==
+ "829","last ocn should be: 829"); // ok
+ // assert(check["last_ocn"] == "832","last ocn should be: 832");
+ // has endnotes and bookindex, issue with sisu.rb
+ break;
+ case "through_the_looking_glass.lewis_carroll.sst":
+ assert(check["last_ocn"] ==
+ "949","last ocn should be: 949"); // 955
+ break;
+ case "two_bits.christopher_kelty.sst": // endnotes, bookindex, biblio
+ assert(check["last_ocn"] ==
+ "1190","last ocn should be: 1190"); // 1191
+ // assert(check["last_ocn"] == "1193","last ocn should be: 1193"); // 1191 ok?
+ // has endnotes and bookindex, issue with sisu.rb
+ break;
+ // fixed ERROR! range violation!
+ // error in bookindex ... (ch3 the movement)
+ case "un_contracts_international_sale_of_goods_convention_1980.sst":
+ assert(check["last_ocn"] ==
+ "377","last ocn should be: 377"); // ok
+ break;
+ case "viral_spiral.david_bollier.sst": // endnotes, bookindex
+ assert(check["last_ocn"] ==
+ "1078","last ocn should be: 1078"); // 1100
+ // fixed ERROR! range violation!
+ // error in bookindex ... (ch7 ... building the cc machine, an extra semi colon)
+ break;
+ default:
+ writeln(fn_src);
+ break;
+ }
+ }
+ }
+}
+#+end_src
+
+* tangles
+** code structure: :ao_output_debugs.d:
+#+name: tangle_ao_output_debugs
+#+BEGIN_SRC d :tangle ../lib/sdp/ao_output_debugs.d :exports none :noweb yes
+/*
+ output debugs
+ ao_output_debugs.d
+*/
+template SiSUoutputDebugs() {
+ class SDPoutputDebugs {
+ auto abstract_doc_source_debugs(
+ string[string][] contents,
+ JSONValue[string] docmake,
+ JSONValue[string] dochead,
+ string[][string][string] bookindex_unordered_hashes,
+ JSONValue[] biblio,
+ string fn_src,
+ string[string] actions
+ ) {
+ mixin RgxInit;
+ mixin ScreenTxtColors;
+ auto rgx = new Rgx();
+ <<ao_output_debugs>>
+ <<ao_output_debugs_summary>>
+ }
+ }
+ }
+}
+#+end_src