diff --git a/docs/core-module/1-wtc.html b/docs/core-module/1-wtc.html index 95bd1342b..7b95e4633 100644 --- a/docs/core-module/1-wtc.html +++ b/docs/core-module/1-wtc.html @@ -352,8 +352,8 @@ but is openly accessible even on MacOS.

If Inform is working on a single source text file, not a bundle, then the project will be the current working directory, but now the build folder will -be the Inbuild transient area, and materials (if present) will again be -alongside. +be the folder Build in the same directory as the source file, and materials +(if present) will again be alongside.

To begin: what's in the project area? story.ni and auto.inf, neither diff --git a/docs/inform7/1-mn.html b/docs/inform7/1-mn.html index 89c24729e..0943fc177 100644 --- a/docs/inform7/1-mn.html +++ b/docs/inform7/1-mn.html @@ -91,6 +91,7 @@ equivalent of unlocking the doors and turning the lights on in the morning. int silence_is_golden = FALSE; int index_explicitly_set = FALSE, problems_explicitly_set = FALSE; pathname *diagnostics_path = NULL; +text_stream *log_to_project = NULL; int Main::deputy(int argc, char *argv[]) { Start up2.1; @@ -211,6 +212,9 @@ but we won't assume that. Remember, for (int i=0; i<argc; i++) LOG(" %s", argv[i]); LOG("\n"); CommandLine::play_back_log(); + if (Str::len(log_to_project) > 0) + if (Log::set_aspect_from_command_line(log_to_project, FALSE) == FALSE) + Problems::fatal("Unknown -log-to-project setting"); } if (proj) { if (Task::problems_enabled()) { @@ -388,6 +392,7 @@ compiler via Delia scripts in enum CHECK_RESOURCES_CLSW enum INBUILD_VERBOSE_CLSW enum INBUILD_VERBOSITY_CLSW +enum LOG_TO_PROJECT_CLSW

§4.2. Register command-line arguments4.2 =

@@ -412,6 +417,8 @@ compiler via Delia scripts in L"if no problems occur, write diagnostics files to directory X", FALSE); CommandLine::declare_switch(REQUIRE_PROBLEM_CLSW, L"require-problem", 2, L"return 0 unless exactly this Problem message is generated"); + CommandLine::declare_switch(LOG_TO_PROJECT_CLSW, L"log-to-project", 2, + L"like -log X, but writing the debugging log into the project"); CommandLine::declare_switch(TEST_OUTPUT_CLSW, L"test-output", 2, L"write output of internal tests to file X"); CommandLine::declare_boolean_switch(SILENCE_CLSW, L"silence", 1, @@ -448,6 +455,7 @@ rather than core case DIAGNOSTICS_CLSW: diagnostics_path = Pathnames::from_text(arg); break; case CHECK_RESOURCES_CLSW: ResourceFinder::set_mode(val); break; case TEST_OUTPUT_CLSW: InternalTests::set_file(Filenames::from_text(arg)); break; + case LOG_TO_PROJECT_CLSW: log_to_project = Str::duplicate(arg); break; case SILENCE_CLSW: silence_is_golden = TRUE; break; case INBUILD_VERBOSE_CLSW: Supervisor::set_verbosity(1); break; case INBUILD_VERBOSITY_CLSW: Supervisor::set_verbosity(val); break; @@ -461,7 +469,7 @@ rather than core Errors::fatal_with_text( "to compile a project in a directory, use '-project %S'", opt); filename *F = Filenames::from_text(opt); - if (Supervisor::set_I7_source(F) == FALSE) + if (Supervisor::set_I7_source(F) == FALSE) Errors::fatal_with_text("unknown command line argument: %S (see -help)", opt); } } diff --git a/docs/inform7/M-cu.html b/docs/inform7/M-cu.html index 5994b38d8..acabbda06 100644 --- a/docs/inform7/M-cu.html +++ b/docs/inform7/M-cu.html @@ -52,7 +52,7 @@

A brief note on using Inform 7 at the command line.

-
+

§1. Disclaimer. This is not documentation on the Inform language or its user-interface apps: it's a technical note on how the command-line tool inside those apps is called. @@ -215,24 +215,7 @@ to compile) then source-reference links will be to the right examples.

For ordinary, non-Extension, projects, this switch should not be used.

-

§9. When the app installs a new extension (in the external area), or is run -for the first time, it should call Inform 7 to perform a "census" of the -available extensions. The compiler then looks through its internal and -external areas, and creates suitable HTML pages showing what it finds, -which it stores in a writeable area of the file system called the "transient" -directory. -

- -

The usage for this is: -

- -
-    $ inform7/Tangled/inform7 -internal I -external E -transient T -census
-
-

(The caller has the obligation to provide the Transient directory.) -

- -

§10. Using Inform 7 without projects. To users of Inform UI apps, projects seem essential. On Mac OS, they are +

§9. Using Inform 7 without projects. To users of Inform UI apps, projects seem essential. On Mac OS, they are sealed boxes, looking like files in the Finder, but on all platforms they are in reality directories, containing not only the source code but also a variety of other things. @@ -308,7 +291,7 @@ example, $ ls helloworld.c helloworld.i7 -

§11. Testing and debugging switches. The following switches are used only when testing or maintaining Inform, +

§10. Testing and debugging switches. The following switches are used only when testing or maintaining Inform, and are unlikely to be useful to end users. Many of these are, however, used in the Intest scripts for testing Inform 7 and Inblorb.

@@ -327,7 +310,7 @@ message".
  • (e) -require-problem SIGIL tells Inform to return an exit code of 0 if exactly this problem message is produced, and 1 otherwise.
  • -

    §12. Expert settings file. Ordinarily, when the user clicks (say) "Go", the GUI app calls the inform7 +

    §11. Expert settings file. Ordinarily, when the user clicks (say) "Go", the GUI app calls the inform7 executable with various command-line settings to perform the actual work. The user has had no way to change those settings, except indirectly by e.g. clicking the checkbox to do with random number generation on the Settings @@ -341,7 +324,7 @@ settings file, and consists of a list of additional command-line arguments command line.

    -

    §13. Prehistory. Build 1A01 was the first rough draft of a completed compiler: but it did +

    §12. Prehistory. Build 1A01 was the first rough draft of a completed compiler: but it did not synchronise fully with the OS X Inform application until 1G22 and private beta-testing did not begin until 1J34. Other milestones include time (1B92), tables (1C86), component parts (1E60), indexing (1F46), diff --git a/docs/inform7/M-pm.html b/docs/inform7/M-pm.html index f68181a29..b3ae0b8b8 100644 --- a/docs/inform7/M-pm.html +++ b/docs/inform7/M-pm.html @@ -70,33 +70,33 @@ which take more than 1/1000th of the total running time.

     100.0% in inform7 run
    -     67.9% in compilation to Inter
    -         45.8% in Sequence::undertake_queued_tasks
    -          4.5% in MajorNodes::pre_pass
    -          3.8% in MajorNodes::pass_1
    +     67.4% in compilation to Inter
    +         45.9% in Sequence::undertake_queued_tasks
    +          4.2% in MajorNodes::pre_pass
    +          3.4% in MajorNodes::pass_1
               1.9% in ImperativeDefinitions::assess_all
    -          1.9% in RTPhrasebook::compile_entries
               1.5% in RTKindConstructors::compile
    +          1.5% in RTPhrasebook::compile_entries
               1.1% in Sequence::lint_inter
    -          0.7% in Sequence::undertake_queued_tasks
               0.3% in CompletionModule::compile
               0.3% in ImperativeDefinitions::compile_first_block
    -          0.3% in InferenceSubjects::emit_all
               0.3% in MajorNodes::pass_2
    +          0.3% in RTKindConstructors::compile_permissions
    +          0.3% in Sequence::undertake_queued_tasks
               0.3% in Sequence::undertake_queued_tasks
               0.3% in World::stage_V
    -          4.2% not specifically accounted for
    -     27.8% in running Inter pipeline
    +          5.0% not specifically accounted for
    +     27.9% in running Inter pipeline
               9.5% in step 14/15: generate inform6 -> auto.inf
               6.8% in step 5/15: load-binary-kits
    -          6.1% in step 6/15: make-synoptic-module
    +          5.7% in step 6/15: make-synoptic-module
               1.9% in step 9/15: make-identifiers-unique
               0.3% in step 12/15: eliminate-redundant-operations
               0.3% in step 4/15: compile-splats
               0.3% in step 7/15: shorten-wiring
               0.3% in step 8/15: detect-indirect-calls
    -          1.9% not specifically accounted for
    -      3.4% in supervisor
    +          2.3% not specifically accounted for
    +      3.8% in supervisor
           0.8% not specifically accounted for
     

    §3. Memory consumption. The following gives some idea of which classes of object have the most @@ -106,36 +106,36 @@ represent less than 1/1000th of the total.

    -Total memory consumption was 138473K = 135 MB
    +Total memory consumption was 139121K = 136 MB
     
    - ---- was used for 2115566 objects, in 374745 frames in 0 x 800K = 0K = 0 MB:
    + ---- was used for 2123157 objects, in 374911 frames in 0 x 800K = 0K = 0 MB:
     
    -    30.5%  inter_tree_node_array                    60 x 8192 = 491520 objects, 43255680 bytes
    -    19.1%  text_stream_array                        4815 x 100 = 481500 objects, 27118080 bytes
    -    17.9%  linked_list                              45341 objects, 25390960 bytes
    -    10.1%  inter_symbol_array                       135 x 1024 = 138240 objects, 14381280 bytes
    +    30.3%  inter_tree_node_array                    60 x 8192 = 491520 objects, 43255680 bytes
    +    19.3%  text_stream_array                        4883 x 100 = 488300 objects, 27501056 bytes
    +    17.8%  linked_list                              45352 objects, 25397120 bytes
    +    10.0%  inter_symbol_array                       135 x 1024 = 138240 objects, 14381280 bytes
          9.8%  inter_error_stash_array                  107 x 1024 = 109568 objects, 14028128 bytes
    -     7.5%  parse_node                               133764 objects, 10701120 bytes
    +     7.5%  parse_node                               133796 objects, 10703680 bytes
          5.3%  verb_conjugation                         164 objects, 7610912 bytes
          4.0%  parse_node_annotation_array              357 x 500 = 178500 objects, 5723424 bytes
    -     3.1%  scan_directory                           1090 objects, 4499520 bytes
    +     3.1%  scan_directory                           1092 objects, 4507776 bytes
          2.4%  pcalc_prop_array                         26 x 1000 = 26000 objects, 3536832 bytes
          2.2%  inter_name_array                         67 x 1000 = 67000 objects, 3218144 bytes
          1.9%  kind_array                               68 x 1000 = 68000 objects, 2722176 bytes
          1.5%  inter_schema_token                       14176 objects, 2154752 bytes
          1.4%  inter_name_generator_array               51 x 1000 = 51000 objects, 2041632 bytes
    -     1.3%  package_request                          21340 objects, 1877920 bytes
    +     1.3%  package_request                          21344 objects, 1878272 bytes
          1.2%  vocabulary_entry_array                   163 x 100 = 16300 objects, 1830816 bytes
    -     1.1%  dict_entry_array                         484 x 100 = 48400 objects, 1564288 bytes
    -     1.0%  inter_symbols_table                      26913 objects, 1507128 bytes
    +     1.1%  dict_entry_array                         491 x 100 = 49100 objects, 1586912 bytes
    +     1.0%  inter_symbols_table                      26921 objects, 1507576 bytes
          1.0%  match_trie_array                         11 x 1000 = 11000 objects, 1496352 bytes
          1.0%  i6_schema_array                          24 x 100 = 2400 objects, 1440768 bytes
    -     0.9%  inter_package                            26913 objects, 1291824 bytes
    -     0.8%  map_data                                 677 objects, 1137360 bytes
    -     0.7%  id_body                                  977 objects, 1117688 bytes
    +     0.9%  inter_package                            26921 objects, 1292208 bytes
    +     0.7%  map_data                                 677 objects, 1137360 bytes
    +     0.7%  id_body                                  979 objects, 1119976 bytes
          0.7%  adjective_meaning                        208 objects, 1030016 bytes
          0.7%  inter_schema_node                        9066 objects, 1015392 bytes
    -     0.6%  excerpt_meaning                          3162 objects, 986544 bytes
    +     0.6%  excerpt_meaning                          3164 objects, 987168 bytes
          0.6%  production                               3985 objects, 924520 bytes
          0.6%  ptoken                                   8652 objects, 899808 bytes
          0.6%  grammatical_usage                        3648 objects, 875520 bytes
    @@ -144,24 +144,24 @@ represent less than 1/1000th of the total.
          0.3%  local_variable_array                     49 x 100 = 4900 objects, 471968 bytes
          0.2%  verb_usage                               1148 objects, 394912 bytes
          0.2%  rule                                     478 objects, 374752 bytes
    -     0.2%  dictionary                               7751 objects, 372048 bytes
    +     0.2%  dictionary                               7754 objects, 372192 bytes
          0.2%  verb_form                                388 objects, 350752 bytes
          0.2%  noun                                     2395 objects, 287400 bytes
          0.1%  compilation_subtask                      3388 objects, 271040 bytes
          0.1%  inference_subject                        672 objects, 263424 bytes
          0.1%  inter_annotation_array                   2 x 8192 = 16384 objects, 262208 bytes
    -     0.1%  vanilla_function                         3807 objects, 243648 bytes
    +     0.1%  vanilla_function                         3808 objects, 243712 bytes
          0.1%  binary_predicate                         330 objects, 174240 bytes
    -     0.1%  hierarchy_location                       1189 objects, 171216 bytes
    +     0.1%  hierarchy_location                       1190 objects, 171360 bytes
          0.1%  linguistic_stock_item                    3338 objects, 160224 bytes
          0.1%  rule_family_data                         404 objects, 148672 bytes
    -     0.1%  nonterminal                              773 objects, 142232 bytes
    +     ----  nonterminal                              773 objects, 142232 bytes
          ----  nascent_array                            2130 objects, 136320 bytes
          ----  inference                                1705 objects, 122760 bytes
          ----  pcalc_term_array                         3 x 1000 = 3000 objects, 120096 bytes
    -     ----  documentation_ref                        1276 objects, 112288 bytes
    +     ----  documentation_ref                        1278 objects, 112464 bytes
          ----  inter_schema                             1542 objects, 111024 bytes
    -     ----  imperative_defn                          1415 objects, 101880 bytes
    +     ----  imperative_defn                          1417 objects, 102024 bytes
          ----  noun_usage                               2419 objects, 96760 bytes
          ----  anl_entry_array                          2 x 1000 = 2000 objects, 96064 bytes
          ----  inter_tree                               7 objects, 95872 bytes
    @@ -173,8 +173,8 @@ represent less than 1/1000th of the total.
          ----  spatial_data                             677 objects, 64992 bytes
          ----  kind_constructor                         79 objects, 64464 bytes
          ----  linked_list_item_array                   4 x 1000 = 4000 objects, 64128 bytes
    -     ----  actions_rcd_data                         1954 objects, 62528 bytes
    -     ----  scenes_rcd_data                          1954 objects, 62528 bytes
    +     ----  actions_rcd_data                         1958 objects, 62656 bytes
    +     ----  scenes_rcd_data                          1958 objects, 62656 bytes
          ----  booking                                  868 objects, 62496 bytes
          ----  kind_macro_definition                    9 objects, 62280 bytes
          ----  command_grammar                          130 objects, 58240 bytes
    @@ -187,8 +187,8 @@ represent less than 1/1000th of the total.
          ----  ap_clause_array                          2 x 400 = 800 objects, 51264 bytes
          ----  HTML_tag_array                           1 x 1000 objects, 48032 bytes
          ----  heading                                  212 objects, 47488 bytes
    +     ----  to_family_data                           527 objects, 42160 bytes
          ----  text_substitution                        438 objects, 42048 bytes
    -     ----  to_family_data                           525 objects, 42000 bytes
          ----  activity_list_array                      1 x 1000 objects, 40032 bytes
          ----  anl_clause_array                         1 x 1000 objects, 40032 bytes
          ----  shared_variable_access_list_array        12 x 100 = 1200 objects, 38784 bytes
    @@ -200,8 +200,8 @@ represent less than 1/1000th of the total.
          ----  stack_frame_box                          307 objects, 29472 bytes
          ----  verb_sense                               407 objects, 29304 bytes
          ----  action_pattern_array                     7 x 100 = 700 objects, 28224 bytes
    -     ----  filename                                 702 objects, 28080 bytes
    -     ----  pathname                                 664 objects, 26560 bytes
    +     ----  filename                                 703 objects, 28120 bytes
    +     ----  pathname                                 660 objects, 26400 bytes
          ----  shared_variable_set_array                6 x 100 = 600 objects, 24192 bytes
          ----  parse_node_tree                          27 objects, 23544 bytes
          ----  property                                 148 objects, 22496 bytes
    @@ -211,7 +211,7 @@ represent less than 1/1000th of the total.
          ----  pipeline_step                            15 objects, 20280 bytes
          ----  action_name                              90 objects, 20160 bytes
          ----  timed_rules_rfd_data                     404 objects, 19392 bytes
    -     ----  method                                   398 objects, 19104 bytes
    +     ----  method                                   403 objects, 19344 bytes
          ----  build_vertex                             157 objects, 18840 bytes
          ----  instance                                 162 objects, 18144 bytes
          ----  pcalc_prop_deferral                      86 objects, 17888 bytes
    @@ -224,10 +224,11 @@ represent less than 1/1000th of the total.
          ----  booking_list                             407 objects, 13024 bytes
          ----  web_bibliographic_datum                  203 objects, 12992 bytes
          ----  adjective_iname_holder                   323 objects, 12920 bytes
    -     ----  tree_node                                149 objects, 11920 bytes
    +     ----  tree_node                                148 objects, 11840 bytes
          ----  uniqueness_count                         482 objects, 11568 bytes
          ----  inter_construct                          32 objects, 11008 bytes
          ----  stopwatch_timer                          124 objects, 9920 bytes
    +     ----  programming_language                     1 object, 8792 bytes
          ----  heading_tree                             27 objects, 8424 bytes
          ----  inbuild_work                             124 objects, 7936 bytes
          ----  equation_node                            68 objects, 7616 bytes
    @@ -241,6 +242,7 @@ represent less than 1/1000th of the total.
          ----  inbuild_edition                          85 objects, 6120 bytes
          ----  section_md                               62 objects, 5952 bytes
          ----  parsed_use_option_setting                79 objects, 5688 bytes
    +     ----  cdoc_code_line                           110 objects, 5280 bytes
          ----  activity                                 35 objects, 5040 bytes
          ----  build_script                             157 objects, 5024 bytes
          ----  inform_extension                         26 objects, 4992 bytes
    @@ -248,35 +250,34 @@ represent less than 1/1000th of the total.
          ----  value_property_data                      86 objects, 4816 bytes
          ----  compatibility_specification              100 objects, 4800 bytes
          ----  parsing_pp_data                          96 objects, 4608 bytes
    -     ----  command_line_switch                      55 objects, 4400 bytes
    -     ----  cdoc_code_line                           110 objects, 4400 bytes
    +     ----  command_line_switch                      56 objects, 4480 bytes
          ----  semver_range                             42 objects, 4368 bytes
          ----  use_option                               31 objects, 4216 bytes
    -     ----  either_or_property_data                  62 objects, 3968 bytes
          ----  parse_node_annotation_type               124 objects, 3968 bytes
    +     ----  either_or_property_data                  62 objects, 3968 bytes
    +     ----  method_set                               109 objects, 3488 bytes
          ----  definition                               48 objects, 3456 bytes
    -     ----  method_set                               108 objects, 3456 bytes
    -     ----  submodule_request                        86 objects, 3440 bytes
          ----  property_setting_bp_data                 86 objects, 3440 bytes
    +     ----  submodule_request                        86 objects, 3440 bytes
          ----  kind_constructor_comparison_schema_array 1 x 100 objects, 3232 bytes
          ----  target_vm                                20 objects, 2880 bytes
          ----  JSON_type                                39 objects, 2808 bytes
          ----  JSON_single_requirement                  55 objects, 2640 bytes
    -     ----  parentage_inference_data                 79 objects, 2528 bytes
          ----  part_of_inference_data                   79 objects, 2528 bytes
    +     ----  parentage_inference_data                 79 objects, 2528 bytes
          ----  kind_constructor_instance_rule_array     1 x 100 objects, 2432 bytes
          ----  kind_constructor_casting_rule_array      1 x 100 objects, 2432 bytes
          ----  equation_symbol                          30 objects, 2400 bytes
          ----  scene                                    1 object, 2352 bytes
          ----  build_step                               28 objects, 2016 bytes
    -     ----  pronoun_usage                            42 objects, 1680 bytes
          ----  compiler_feature                         30 objects, 1680 bytes
    +     ----  pronoun_usage                            42 objects, 1680 bytes
          ----  table_contribution_array                 1 x 100 objects, 1632 bytes
          ----  inform_pipeline                          24 objects, 1536 bytes
          ----  inbuild_requirement                      37 objects, 1480 bytes
          ----  noun_filter_token                        22 objects, 1408 bytes
    -     ----  inter_node_array                         35 objects, 1400 bytes
          ----  special_meaning_holder                   35 objects, 1400 bytes
    +     ----  inter_node_array                         35 objects, 1400 bytes
          ----  JSON_requirement                         42 objects, 1344 bytes
          ----  constant_phrase                          20 objects, 1280 bytes
          ----  table_column                             16 objects, 1280 bytes
    @@ -303,9 +304,9 @@ represent less than 1/1000th of the total.
          ----  chapter_md                               7 objects, 616 bytes
          ----  code_generation                          1 object, 576 bytes
          ----  cdoc_paragraph                           18 objects, 576 bytes
    -     ----  inter_warehouse_room                     10 objects, 560 bytes
    -     ----  generated_segment                        14 objects, 560 bytes
          ----  inter_annotation_form                    14 objects, 560 bytes
    +     ----  generated_segment                        14 objects, 560 bytes
    +     ----  inter_warehouse_room                     10 objects, 560 bytes
          ----  module                                   7 objects, 560 bytes
          ----  rulebook_outcome                         17 objects, 544 bytes
          ----  small_word_set                           11 objects, 528 bytes
    @@ -314,72 +315,72 @@ represent less than 1/1000th of the total.
          ----  bp_family                                14 objects, 448 bytes
          ----  inbuild_genre                            8 objects, 448 bytes
          ----  inference_family                         11 objects, 440 bytes
    -     ----  source_file                              5 objects, 400 bytes
    +     ----  source_file                              5 objects, 440 bytes
          ----  article_usage                            8 objects, 384 bytes
    -     ----  module_request                           8 objects, 320 bytes
    -     ----  grammatical_category                     8 objects, 320 bytes
    +     ----  tree_node_type                           8 objects, 384 bytes
          ----  cached_kind_declaration                  8 objects, 320 bytes
    -     ----  tree_inventory                           1 object, 320 bytes
          ----  door_dir_notice                          5 objects, 320 bytes
    +     ----  tree_inventory                           1 object, 320 bytes
    +     ----  grammatical_category                     8 objects, 320 bytes
    +     ----  module_request                           8 objects, 320 bytes
          ----  pronoun                                  8 objects, 320 bytes
          ----  inter_pipeline                           1 object, 312 bytes
    -     ----  compiled_documentation                   4 objects, 288 bytes
    +     ----  cdoc_code_sample                         6 objects, 288 bytes
    +     ----  compiled_documentation                   3 objects, 288 bytes
          ----  up_family                                9 objects, 288 bytes
    -     ----  tree_node_type                           6 objects, 288 bytes
    -     ----  compilation_unit                         5 objects, 280 bytes
          ----  explicit_bp_data                         5 objects, 280 bytes
    -     ----  contents_entry                           7 objects, 280 bytes
          ----  door_to_notice                           5 objects, 280 bytes
    -     ----  kit_dependency                           5 objects, 240 bytes
    +     ----  compilation_unit                         5 objects, 280 bytes
    +     ----  contents_entry                           7 objects, 280 bytes
          ----  verb_usage_tier                          5 objects, 240 bytes
    +     ----  kit_dependency                           5 objects, 240 bytes
          ----  inform_project                           1 object, 232 bytes
    -     ----  adjective_meaning_family                 7 objects, 224 bytes
          ----  local_block_value                        4 objects, 224 bytes
    +     ----  adjective_meaning_family                 7 objects, 224 bytes
          ----  test_scenario                            1 object, 216 bytes
          ----  release_instructions                     1 object, 208 bytes
    -     ----  build_skill                              5 objects, 200 bytes
    -     ----  code_generator                           5 objects, 200 bytes
          ----  attachment_instruction                   5 objects, 200 bytes
    -     ----  cdoc_heading                             4 objects, 192 bytes
    -     ----  cdoc_code_sample                         6 objects, 192 bytes
    -     ----  element_activation                       6 objects, 192 bytes
    +     ----  code_generator                           5 objects, 200 bytes
    +     ----  build_skill                              5 objects, 200 bytes
          ----  plural_dictionary_entry                  4 objects, 192 bytes
    +     ----  cdoc_example                             4 objects, 192 bytes
    +     ----  element_activation                       6 objects, 192 bytes
          ----  cdoc_passage                             7 objects, 168 bytes
    +     ----  cdoc_heading                             3 objects, 168 bytes
          ----  imperative_defn_family                   4 objects, 160 bytes
          ----  inter_architecture                       4 objects, 160 bytes
    -     ----  cdoc_example                             4 objects, 160 bytes
    -     ----  heterogeneous_tree                       4 objects, 160 bytes
          ----  inference_subject_family                 5 objects, 160 bytes
          ----  inbuild_nest                             3 objects, 120 bytes
    +     ----  heterogeneous_tree                       3 objects, 120 bytes
          ----  inform_language                          1 object, 104 bytes
    -     ----  group_together_function                  2 objects, 80 bytes
          ----  compile_task_data                        1 object, 80 bytes
    +     ----  group_together_function                  2 objects, 80 bytes
          ----  article                                  2 objects, 80 bytes
          ----  inter_warehouse                          1 object, 56 bytes
    -     ----  build_methodology                        1 object, 56 bytes
          ----  figures_data                             1 object, 56 bytes
    +     ----  build_methodology                        1 object, 56 bytes
    +     ----  HTML_file_state                          1 object, 48 bytes
          ----  inform_kit_ittt                          1 object, 48 bytes
          ----  star_invention                           1 object, 48 bytes
    -     ----  HTML_file_state                          1 object, 48 bytes
    -     ----  tree_type                                1 object, 40 bytes
    -     ----  loop_over_scope                          1 object, 40 bytes
          ----  kind_template_definition                 1 object, 40 bytes
    -     ----  I6_generation_data                       1 object, 40 bytes
    -     ----  by_function_bp_data                      1 object, 40 bytes
          ----  target_pragma_setting                    1 object, 40 bytes
    +     ----  by_function_bp_data                      1 object, 40 bytes
    +     ----  loop_over_scope                          1 object, 40 bytes
    +     ----  tree_type                                1 object, 40 bytes
    +     ----  I6_generation_data                       1 object, 40 bytes
     
     99.9% was used for memory not allocated for objects:
     
    -    62.0%  text stream storage                      88036640 bytes in 501783 claims
    -     3.7%  dictionary storage                       5377536 bytes in 7751 claims
    +    62.1%  text stream storage                      88595684 bytes in 508381 claims
    +     3.8%  dictionary storage                       5480960 bytes in 7754 claims
          ----  sorting                                  2624 bytes in 531 claims
          5.0%  source text                              7200000 bytes in 3 claims
    -     7.6%  source text details                      10800000 bytes in 2 claims
    +     7.5%  source text details                      10800000 bytes in 2 claims
          0.1%  documentation fragments                  262144 bytes in 1 claim
          ----  linguistic stock array                   81920 bytes in 2 claims
          ----  small word set array                     105600 bytes in 22 claims
    -     3.3%  inter symbols storage                    4703712 bytes in 28290 claims
    -    11.8%  inter bytecode storage                   16758140 bytes in 15 claims
    +     3.3%  inter symbols storage                    4704736 bytes in 28298 claims
    +    11.7%  inter bytecode storage                   16758228 bytes in 15 claims
          4.3%  inter links storage                      6222976 bytes in 11 claims
          0.1%  inter tree location list storage         191232 bytes in 32 claims
          1.2%  instance-of-kind counting                1731856 bytes in 1 claim
    @@ -388,7 +389,7 @@ represent less than 1/1000th of the total.
          ----  code generation workspace for objects    3488 bytes in 19 claims
          0.1%  emitter array storage                    281184 bytes in 2006 claims
     
    --137.-2% was overhead - -194583184 bytes = -190022K = -185 MB
    +-136.-8% was overhead - -195020968 bytes = -190450K = -185 MB
     

    §4. Preform grammar. The full annotated description of the Preform grammar (see About Preform (in words)), with optimisation details and hit/miss statistics added, is also long: it's @@ -397,7 +398,7 @@ sample, showing the nonterminal used to parse literals in Inform 7 source text:

    -<s-literal> hits 2131/24680 nti 19 constraint (none) extremes [1, infinity)
    +<s-literal> hits 2131/24688 nti 19 constraint (none) extremes [1, infinity)
         English:
             (@1)<cardinal-number>=1 
               (hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1]
    @@ -415,17 +416,17 @@ sample, showing the nonterminal used to parse literals in Inform 7 source text:
               (hits 1575/5756) (matched: 'Can be used for objects which are purely
             conceptual, like ideas, or are needed for internal book-keeping.') constraint (none) extremes [1, 1]
             <s-literal-real-number>=1 
    -          (hits 11/10320) (matched: 'plus infinity') constraint (none) extremes [1, infinity)
    +          (hits 11/10324) (matched: 'plus infinity') constraint (none) extremes [1, infinity)
             (@1)<s-literal-truth-state>=1 
               (hits 100/379) (matched: 'false') constraint CS = {13} extremes [1, 1]
             <s-literal-list>=1 
    -          (hits 0/3246) constraint DS = {15} extremes [2, infinity)
    +          (hits 0/3250) constraint DS = {15} extremes [2, infinity)
             (@1)unicode <s-unicode-character>=1 
    -          (hits 0/3994) constraint DS = {19} extremes [2, infinity)
    +          (hits 0/3998) constraint DS = {19} extremes [2, infinity)
             <s-literal-time>=1 
    -          (hits 0/3569) constraint DW = {16, 17, 18} extremes [2, 5]
    +          (hits 0/3571) constraint DW = {16, 17, 18} extremes [2, 5]
             <s-literal-unit-notation>=1 
    -          (hits 0/10209) constraint (none) extremes [1, infinity)
    +          (hits 0/10213) constraint (none) extremes [1, infinity)
     

    The unabridged grammar is here:

    @@ -480,8 +481,8 @@ for a lengthy read: VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'asking for information' UNPARSED_NOUN_NT'out of world' - IMPERATIVE_NT'carry out asking for information' {unit: 3} {imperative definition: 835} - IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 836} + IMPERATIVE_NT'carry out asking for information' {unit: 3} {imperative definition: 837} + IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 838} HEADING_NT'section 1 - errands' {heading 5} {under: H5'section 1 - errands'} {unit: 3} SENTENCE_NT'the current actor is a person which varies' {unit: 3} {classified} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} @@ -491,8 +492,8 @@ for a lengthy read: VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'current owner' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'current owner' {nonlocal: 'current owner'(var)person}} {created here} COMMON_NOUN_NT'person which varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=people variable-pointer(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 837} - IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 838} + IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 839} + IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 840} SENTENCE_NT'a person can be active or passive' {unit: 3} {classified} VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be} COMMON_NOUN_NT'a person' {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} @@ -508,34 +509,34 @@ for a lengthy read: VERB_NT'are' {verb 'be' 3p p act IS_TENSE +ve} PROPER_NOUN_NT'character movement rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: character movement}} {created here} COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'the first character movement rule' {unit: 3} {imperative definition: 839} - IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 840} - IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 841} - IMPERATIVE_NT'to decide whether movement has not yet occurred' {unit: 3} {imperative definition: 842} - IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 843} - IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 844} + IMPERATIVE_NT'the first character movement rule' {unit: 3} {imperative definition: 841} + IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 842} + IMPERATIVE_NT'a character movement rule' {unit: 3} {imperative definition: 843} + IMPERATIVE_NT'to decide whether movement has not yet occurred' {unit: 3} {imperative definition: 844} + IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 845} + IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 846} SENTENCE_NT'the shopowner rules is a rulebook' {unit: 3} {classified} {clears pronouns} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'shopowner rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: shopowner}} {created here} COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 845} - IMPERATIVE_NT'report someone closing a door when the person asked owns the' {unit: 3} {imperative definition: 846} - IMPERATIVE_NT'report vanessa closing the metal door when the metal door is' {unit: 3} {imperative definition: 847} - IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 848} + IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 847} + IMPERATIVE_NT'report someone closing a door when the person asked owns the' {unit: 3} {imperative definition: 848} + IMPERATIVE_NT'report vanessa closing the metal door when the metal door is' {unit: 3} {imperative definition: 849} + IMPERATIVE_NT'a shopowner rule' {unit: 3} {imperative definition: 850} SENTENCE_NT'filing is an action applying to one thing' {unit: 3} {classified} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'filing' UNPARSED_NOUN_NT'applying to one thing' - IMPERATIVE_NT'before someone filing something which is not carried by the ' {unit: 3} {imperative definition: 849} - IMPERATIVE_NT'carry out someone filing' {unit: 3} {imperative definition: 850} - IMPERATIVE_NT'report someone filing' {unit: 3} {imperative definition: 851} + IMPERATIVE_NT'before someone filing something which is not carried by the ' {unit: 3} {imperative definition: 851} + IMPERATIVE_NT'carry out someone filing' {unit: 3} {imperative definition: 852} + IMPERATIVE_NT'report someone filing' {unit: 3} {imperative definition: 853} SENTENCE_NT'the shopper rules is a rulebook' {unit: 3} {classified} {clears pronouns} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'shopper rules' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT {kind: rulebook} {rulebook: shopper}} {created here} COMMON_NOUN_NT'rulebook' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values based rulebook producing values'-k} {creation: << kind=rulebook(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 852} - IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 853} - IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 854} + IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 854} + IMPERATIVE_NT'a shopper rule' {unit: 3} {imperative definition: 855} + IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 856} DEFN_CONT_NT'a room is air-conditioned' {unit: 3} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} @@ -593,8 +594,8 @@ for a lengthy read: COMMON_NOUN_NT'artwork' {indefinite 'an' n/m/f nom/acc s} {refined} {creation: << kind=artwork(x) >>} {refers: infs'artwork'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of thing' {refined} {refers: infs'thing'} COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before printing the name of an artwork' {unit: 3} {imperative definition: 855} - IMPERATIVE_NT'after printing the name of an artwork' {unit: 3} {imperative definition: 856} + IMPERATIVE_NT'before printing the name of an artwork' {unit: 3} {imperative definition: 857} + IMPERATIVE_NT'after printing the name of an artwork' {unit: 3} {imperative definition: 858} SENTENCE_NT'an artwork can be submitted or reserved' {unit: 3} {classified} VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be} COMMON_NOUN_NT'an artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT} @@ -607,49 +608,49 @@ for a lengthy read: COMMON_NOUN_NT'book' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=book(x) >>} {refers: infs'book'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of artwork' {refined} {refers: infs'artwork'} COMMON_NOUN_NT'artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before someone resolving a book when the person asked is not' {unit: 3} {imperative definition: 857} - IMPERATIVE_NT'carry out someone resolving a book' {unit: 3} {imperative definition: 858} - IMPERATIVE_NT'report someone resolving a book' {unit: 3} {imperative definition: 859} - IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 860} - IMPERATIVE_NT'before grouping together books' {unit: 3} {imperative definition: 861} + IMPERATIVE_NT'before someone resolving a book when the person asked is not' {unit: 3} {imperative definition: 859} + IMPERATIVE_NT'carry out someone resolving a book' {unit: 3} {imperative definition: 860} + IMPERATIVE_NT'report someone resolving a book' {unit: 3} {imperative definition: 861} + IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 862} + IMPERATIVE_NT'before grouping together books' {unit: 3} {imperative definition: 863} SENTENCE_NT'a stamped envelope is a kind of thing' {unit: 3} {classified} {interpretation of subject: infs'book'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'stamped envelope' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=stamped envelope(x) >>} {refers: infs'stamped envelope'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of thing' {refined} {refers: infs'thing'} COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before someone resolving a stamped envelope when the person ' {unit: 3} {imperative definition: 862} - IMPERATIVE_NT'carry out someone resolving a stamped envelope' {unit: 3} {imperative definition: 863} - IMPERATIVE_NT'report someone resolving a stamped envelope' {unit: 3} {imperative definition: 864} - IMPERATIVE_NT'instead of someone resolving a stamped envelope when the per' {unit: 3} {imperative definition: 865} + IMPERATIVE_NT'before someone resolving a stamped envelope when the person ' {unit: 3} {imperative definition: 864} + IMPERATIVE_NT'carry out someone resolving a stamped envelope' {unit: 3} {imperative definition: 865} + IMPERATIVE_NT'report someone resolving a stamped envelope' {unit: 3} {imperative definition: 866} + IMPERATIVE_NT'instead of someone resolving a stamped envelope when the per' {unit: 3} {imperative definition: 867} SENTENCE_NT'a dvd is a kind of artwork' {unit: 3} {classified} {interpretation of subject: infs'stamped envelope'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'dvd' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=dvd(x) >>} {refers: infs'dvd'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of artwork' {refined} {refers: infs'artwork'} COMMON_NOUN_NT'artwork' {refined} {refers: infs'artwork'} {creation: << kind=artwork(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before someone resolving a dvd when the person asked is not ' {unit: 3} {imperative definition: 866} - IMPERATIVE_NT'carry out someone resolving a dvd' {unit: 3} {imperative definition: 867} - IMPERATIVE_NT'report someone resolving a dvd' {unit: 3} {imperative definition: 868} - IMPERATIVE_NT'instead of someone resolving a dvd when the person asked car' {unit: 3} {imperative definition: 869} - IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 870} - IMPERATIVE_NT'before grouping together dvds' {unit: 3} {imperative definition: 871} + IMPERATIVE_NT'before someone resolving a dvd when the person asked is not ' {unit: 3} {imperative definition: 868} + IMPERATIVE_NT'carry out someone resolving a dvd' {unit: 3} {imperative definition: 869} + IMPERATIVE_NT'report someone resolving a dvd' {unit: 3} {imperative definition: 870} + IMPERATIVE_NT'instead of someone resolving a dvd when the person asked car' {unit: 3} {imperative definition: 871} + IMPERATIVE_NT'before listing contents' {unit: 3} {imperative definition: 872} + IMPERATIVE_NT'before grouping together dvds' {unit: 3} {imperative definition: 873} SENTENCE_NT'approaching is an action applying to one thing' {unit: 3} {classified} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'approaching' UNPARSED_NOUN_NT'applying to one thing' - IMPERATIVE_NT'carry out someone approaching' {unit: 3} {imperative definition: 872} + IMPERATIVE_NT'carry out someone approaching' {unit: 3} {imperative definition: 874} SENTENCE_NT'a coupon is a kind of thing' {unit: 3} {classified} {interpretation of subject: infs'dvd'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'coupon' {indefinite 'a' n/m/f nom/acc s} {refined} {creation: << kind=coupon(x) >>} {refers: infs'coupon'} {eval: TEST_VALUE_NT} {created here} KIND_NT'kind of thing' {refined} {refers: infs'thing'} COMMON_NOUN_NT'thing' {refined} {refers: infs'thing'} {creation: << kind=thing(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'carry out someone resolving a coupon' {unit: 3} {imperative definition: 873} + IMPERATIVE_NT'carry out someone resolving a coupon' {unit: 3} {imperative definition: 875} SENTENCE_NT'the block giving rule is not listed in any rulebook' {unit: 3} {classified} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {rule placement sense: negative} {special meaning: rule-listed-in} UNPARSED_NOUN_NT'the block giving rule' UNPARSED_NOUN_NT'in any rulebook' - IMPERATIVE_NT'check giving something to someone ( this is the block player' {unit: 3} {imperative definition: 874} - IMPERATIVE_NT'before someone resolving a coupon when the person asked is n' {unit: 3} {imperative definition: 875} - IMPERATIVE_NT'after someone giving a coupon to vanessa' {unit: 3} {imperative definition: 876} + IMPERATIVE_NT'check giving something to someone ( this is the block player' {unit: 3} {imperative definition: 876} + IMPERATIVE_NT'before someone resolving a coupon when the person asked is n' {unit: 3} {imperative definition: 877} + IMPERATIVE_NT'after someone giving a coupon to vanessa' {unit: 3} {imperative definition: 878} SENTENCE_NT'infection color is a kind of value' {unit: 3} {classified} {interpretation of subject: infs'coupon'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'infection color' {refined} {creation: << kind=infection color(x) >>} {refers: infs'object'-k} {eval: TEST_VALUE_NT} {created here} @@ -709,7 +710,7 @@ for a lengthy read: AND_NT',' {refined} PROPER_NOUN_NT'saffron silk' {refined} {refers: infs'saffron silk'} {eval: CONSTANT_NT'saffron silk' {kind: infection color} {instance: I81'saffron silk'[infection color]} {enumeration: 25}} {created here} PROPER_NOUN_NT'cookie dough cream' {refined} {refers: infs'cookie dough cream'} {eval: CONSTANT_NT'cookie dough cream' {kind: infection color} {instance: I82'cookie dough cream'[infection color]} {enumeration: 26}} {created here} - IMPERATIVE_NT'to say list of flavors' {unit: 3} {imperative definition: 877} + IMPERATIVE_NT'to say list of flavors' {unit: 3} {imperative definition: 879} SENTENCE_NT'understand "ask vanessa for [flavored ice cream]" as buying ' {unit: 3} {classified} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"ask vanessa for [flavored ice cream]"' @@ -722,8 +723,8 @@ for a lengthy read: VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'buying the flavor' UNPARSED_NOUN_NT'applying to one infection color' - IMPERATIVE_NT'check buying the flavor' {unit: 3} {imperative definition: 878} - IMPERATIVE_NT'carry out buying the flavor' {unit: 3} {imperative definition: 879} + IMPERATIVE_NT'check buying the flavor' {unit: 3} {imperative definition: 880} + IMPERATIVE_NT'carry out buying the flavor' {unit: 3} {imperative definition: 881} SENTENCE_NT'understand "ice cream" or "cream" or "ice" or "sherbet" or "' {unit: 3} {classified} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"ice cream" or "cream" or "ice" or "sherbet" or "sorbet"' @@ -757,12 +758,12 @@ for a lengthy read: VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'the infection color property' UNPARSED_NOUN_NT'referring to an ice cream cone' - IMPERATIVE_NT'carry out someone resolving an ice cream cone' {unit: 3} {imperative definition: 880} - IMPERATIVE_NT'instead of someone eating a fresh ice cream cone' {unit: 3} {imperative definition: 881} - IMPERATIVE_NT'report someone eating an ice cream cone' {unit: 3} {imperative definition: 882} - IMPERATIVE_NT'before printing the name of an ice cream cone' {unit: 3} {imperative definition: 883} + IMPERATIVE_NT'carry out someone resolving an ice cream cone' {unit: 3} {imperative definition: 882} + IMPERATIVE_NT'instead of someone eating a fresh ice cream cone' {unit: 3} {imperative definition: 883} + IMPERATIVE_NT'report someone eating an ice cream cone' {unit: 3} {imperative definition: 884} + IMPERATIVE_NT'before printing the name of an ice cream cone' {unit: 3} {imperative definition: 885} HEADING_NT'section 2 - infection rules' {heading 5} {under: H5'section 2 - infection rules'} {unit: 3} - IMPERATIVE_NT'this is the infection rule' {unit: 3} {imperative definition: 884} + IMPERATIVE_NT'this is the infection rule' {unit: 3} {imperative definition: 886} SENTENCE_NT'a person can be infected or clean' {unit: 3} {classified} VERB_NT'can be' {verb 'be able to be' s/p 3p act IS_TENSE +ve} {special meaning: can-be} COMMON_NOUN_NT'a person' {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} @@ -775,11 +776,11 @@ for a lengthy read: COMMON_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} ALLOWED_NT'has' {refined} UNPARSED_NOUN_NT'infection color' {indefinite 'an' n/m/f nom/acc s} {refined} - IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 885} - IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 886} - IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 887} - IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 888} - IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 889} + IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 887} + IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 888} + IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 889} + IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 890} + IMPERATIVE_NT'every turn' {unit: 3} {imperative definition: 891} SENTENCE_NT'understand "sneeze on [something]" as sneezing on' {unit: 3} {classified} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"sneeze on [something]"' @@ -788,11 +789,11 @@ for a lengthy read: VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'sneezing on' UNPARSED_NOUN_NT'applying to one thing' - IMPERATIVE_NT'check sneezing on' {unit: 3} {imperative definition: 890} - IMPERATIVE_NT'carry out sneezing on' {unit: 3} {imperative definition: 891} - IMPERATIVE_NT'carry out someone sneezing on' {unit: 3} {imperative definition: 892} - IMPERATIVE_NT'report sneezing on' {unit: 3} {imperative definition: 893} - IMPERATIVE_NT'report someone sneezing on' {unit: 3} {imperative definition: 894} + IMPERATIVE_NT'check sneezing on' {unit: 3} {imperative definition: 892} + IMPERATIVE_NT'carry out sneezing on' {unit: 3} {imperative definition: 893} + IMPERATIVE_NT'carry out someone sneezing on' {unit: 3} {imperative definition: 894} + IMPERATIVE_NT'report sneezing on' {unit: 3} {imperative definition: 895} + IMPERATIVE_NT'report someone sneezing on' {unit: 3} {imperative definition: 896} SENTENCE_NT'understand "inject [someone] with [something]" as injecting ' {unit: 3} {classified} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"inject [someone] with [something]"' @@ -813,10 +814,10 @@ for a lengthy read: VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'injecting it with' UNPARSED_NOUN_NT'applying to two things' - IMPERATIVE_NT'check injecting it with' {unit: 3} {imperative definition: 895} - IMPERATIVE_NT'carry out injecting it with' {unit: 3} {imperative definition: 896} - IMPERATIVE_NT'after injecting the player with something' {unit: 3} {imperative definition: 897} - IMPERATIVE_NT'report injecting it with' {unit: 3} {imperative definition: 898} + IMPERATIVE_NT'check injecting it with' {unit: 3} {imperative definition: 897} + IMPERATIVE_NT'carry out injecting it with' {unit: 3} {imperative definition: 898} + IMPERATIVE_NT'after injecting the player with something' {unit: 3} {imperative definition: 899} + IMPERATIVE_NT'report injecting it with' {unit: 3} {imperative definition: 900} HEADING_NT'section 3 - geography' {heading 5} {under: H5'section 3 - geography'} {unit: 3} INCLUSION_NT'include locksmith by emily short' {unit: 3} HEADING_NT'version 14 of locksmith by emily short begins here' {heading 0} {under: H0'version 14 of locksmith by emily short begins here'} {includes: Locksmith by Emily Short v14 } {unit: 3} @@ -841,9 +842,9 @@ for a lengthy read: VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'going toward' UNPARSED_NOUN_NT'applying to one thing' - IMPERATIVE_NT'check going toward' {unit: 3} {imperative definition: 936} - IMPERATIVE_NT'carry out going toward' {unit: 3} {imperative definition: 937} - IMPERATIVE_NT'instead of waiting when the destination of the player is not' {unit: 3} {imperative definition: 938} + IMPERATIVE_NT'check going toward' {unit: 3} {imperative definition: 938} + IMPERATIVE_NT'carry out going toward' {unit: 3} {imperative definition: 939} + IMPERATIVE_NT'instead of waiting when the destination of the player is not' {unit: 3} {imperative definition: 940} SENTENCE_NT'understand "stop" or "cease" as stopping' {unit: 3} {classified} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"stop" or "cease"' @@ -852,11 +853,11 @@ for a lengthy read: VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'stopping' UNPARSED_NOUN_NT'applying to nothing' - IMPERATIVE_NT'carry out stopping' {unit: 3} {imperative definition: 939} - IMPERATIVE_NT'report stopping' {unit: 3} {imperative definition: 940} - IMPERATIVE_NT'after going to an air-conditioned room' {unit: 3} {imperative definition: 941} - IMPERATIVE_NT'after going from an air-conditioned room' {unit: 3} {imperative definition: 942} - IMPERATIVE_NT'instead of listening to an air-conditioned room' {unit: 3} {imperative definition: 943} + IMPERATIVE_NT'carry out stopping' {unit: 3} {imperative definition: 941} + IMPERATIVE_NT'report stopping' {unit: 3} {imperative definition: 942} + IMPERATIVE_NT'after going to an air-conditioned room' {unit: 3} {imperative definition: 943} + IMPERATIVE_NT'after going from an air-conditioned room' {unit: 3} {imperative definition: 944} + IMPERATIVE_NT'instead of listening to an air-conditioned room' {unit: 3} {imperative definition: 945} SENTENCE_NT'the alfred cralle pool hall is a room' {unit: 3} {classified} {interpretation of subject: infs'person'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'alfred cralle pool hall' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'alfred cralle pool hall'} {eval: CONSTANT_NT'alfred cralle pool hall' {kind: object} {instance: I83'alfred cralle pool hall'} {enumeration: 0}} {created here} @@ -898,7 +899,7 @@ for a lengthy read: PROPER_NOUN_NT'felt door' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'felt door'} {eval: CONSTANT_NT'felt door' {kind: door} {instance: I85'felt door'} {enumeration: 0}} PROPER_NOUN_NT'description' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'description'=text}} PROPER_NOUN_NT'"It has a prominent lock, designed for an old-fashioned key.' {refined} {eval: CONSTANT_NT'"It has a prominent lock, designed for an old-fashioned key.' {kind: text}} - IMPERATIVE_NT'after locking a door with something in the presence of an ot' {unit: 3} {imperative definition: 944} + IMPERATIVE_NT'after locking a door with something in the presence of an ot' {unit: 3} {imperative definition: 946} SENTENCE_NT'nancy johnson memorial square is west of the felt door' {unit: 3} {classified} {interpretation of subject: infs'key to the city'} VERB_NT'is west of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: west of} PROPER_NOUN_NT'nancy johnson memorial square' {refined} {refers: infs'nancy johnson memorial square'} {eval: CONSTANT_NT'nancy johnson memorial square' {kind: object} {instance: I87'nancy johnson memorial square'} {enumeration: 0}} {created here} @@ -960,8 +961,8 @@ for a lengthy read: VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'slot' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'slot'} {eval: CONSTANT_NT'slot' {kind: object} {instance: I92'slot'} {enumeration: 0}} COMMON_NOUN_NT'container' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'container'} {creation: << kind=container(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'carry out inserting something into the slot' {unit: 3} {imperative definition: 945} - IMPERATIVE_NT'report inserting something into the slot' {unit: 3} {imperative definition: 946} + IMPERATIVE_NT'carry out inserting something into the slot' {unit: 3} {imperative definition: 947} + IMPERATIVE_NT'report inserting something into the slot' {unit: 3} {imperative definition: 948} SENTENCE_NT'hamwi street is northeast of an iron gate' {unit: 3} {classified} {interpretation of subject: infs'slot'} VERB_NT'is northeast of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: northeast of} PROPER_NOUN_NT'hamwi street' {refined} {refers: infs'hamwi street'} {eval: CONSTANT_NT'hamwi street' {kind: object} {instance: I93'hamwi street'} {enumeration: 0}} {created here} @@ -985,7 +986,7 @@ for a lengthy read: AND_NT'and' {refined} ADJECTIVE_NT'lockable' {refined} {predicate: lockable} {creation: << lockable(x) ^ lockable(x) >>} ADJECTIVE_NT'unlocked' {refined} {predicate: unlocked} {creation: << unlocked(x) ^ unlocked(x) >>} - IMPERATIVE_NT'before printing the name of the iron gate while not opening ' {unit: 3} {imperative definition: 947} + IMPERATIVE_NT'before printing the name of the iron gate while not opening ' {unit: 3} {imperative definition: 949} SENTENCE_NT'cold comfort ice cream is north of a metal door' {unit: 3} {classified} {interpretation of subject: infs'iron gate'} VERB_NT'is north of' {verb 'be' 3p s act IS_TENSE +ve} {prep1: north of} PROPER_NOUN_NT'cold comfort ice cream' {refined} {refers: infs'cold comfort ice cream'} {eval: CONSTANT_NT'cold comfort ice cream' {kind: object} {instance: I95'cold comfort ice cream'} {enumeration: 0}} {created here} @@ -1091,8 +1092,8 @@ for a lengthy read: VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"glass"' UNPARSED_NOUN_NT'the box' - IMPERATIVE_NT'instead of attacking the closed emergency box' {unit: 3} {imperative definition: 948} - IMPERATIVE_NT'instead of attacking the open emergency box' {unit: 3} {imperative definition: 949} + IMPERATIVE_NT'instead of attacking the closed emergency box' {unit: 3} {imperative definition: 950} + IMPERATIVE_NT'instead of attacking the open emergency box' {unit: 3} {imperative definition: 951} SENTENCE_NT'the syringe is in the emergency box' {unit: 3} {classified} {interpretation of subject: infs'emergency box'} VERB_NT'is in' {verb 'be' 3p s act IS_TENSE +ve} {prep1: in} PROPER_NOUN_NT'syringe' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'syringe'} {eval: CONSTANT_NT'syringe' {kind: object} {instance: I104'syringe'} {enumeration: 0}} {created here} @@ -1195,8 +1196,8 @@ for a lengthy read: SENTENCE_NT'use full-length room descriptions' {unit: 3} {classified} VERB_NT'use' {verb 'use' 3p p act IS_TENSE +ve} {special meaning: use} UNPARSED_NOUN_NT'full-length room descriptions' - IMPERATIVE_NT'after looking in an outdoors room' {unit: 3} {imperative definition: 950} - IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 951} + IMPERATIVE_NT'after looking in an outdoors room' {unit: 3} {imperative definition: 952} + IMPERATIVE_NT'definition' {unit: 3} {imperative definition: 953} DEFN_CONT_NT'a door is proximate' {unit: 3} CODE_BLOCK_NT CODE_BLOCK_NT {control structure: IF} @@ -1217,7 +1218,7 @@ for a lengthy read: INVOCATION_NT'yes' {phrase invoked: <no-inter-name>} INVOCATION_LIST_NT'no' {unit: 3} INVOCATION_NT'no' {phrase invoked: <no-inter-name>} - IMPERATIVE_NT'before exiting when the player is in an indoors room' {unit: 3} {imperative definition: 952} + IMPERATIVE_NT'before exiting when the player is in an indoors room' {unit: 3} {imperative definition: 954} SENTENCE_NT'blank is a room' {unit: 3} {classified} {interpretation of subject: infs'key to the city'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'blank' {refined} {refers: infs'blank'} {eval: CONSTANT_NT'blank' {kind: object} {instance: I108'blank'} {enumeration: 0}} {created here} @@ -1443,15 +1444,15 @@ for a lengthy read: PROPER_NOUN_NT'ned' {refined} {refers: infs'ned'} {eval: CONSTANT_NT'ned' {kind: man} {instance: I161'ned'} {enumeration: 0}} RELATIONSHIP_NT'owns' {meaning: ownership-r} {refined} PROPER_NOUN_NT'movie rental' {definite 'the' n/m/f s/p nom/acc} {refined} {refers: infs'movie rental store'} {eval: CONSTANT_NT'movie rental store' {kind: object} {instance: I99'movie rental store'} {enumeration: 0}} - IMPERATIVE_NT'after printing the name of someone ( called target ) while l' {unit: 3} {imperative definition: 953} + IMPERATIVE_NT'after printing the name of someone ( called target ) while l' {unit: 3} {imperative definition: 955} SENTENCE_NT'the description of a person is usually "[The noun] [if the n' {unit: 3} {classified} {interpretation of subject: infs'ned'} VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve} X_OF_Y_NT'description of a person' {definite 'the' n/m/f s/p nom/acc} {refined} COMMON_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'person'} {creation: << kind=person(x) >>} {eval: TEST_VALUE_NT} PROPER_NOUN_NT'description' {refined} {eval: CONSTANT_NT {kind: texts valued property} {property: 'description'=text}} PROPER_NOUN_NT'"[The noun] [if the noun is clean]looks healthy[otherwise]is' {refined} {eval: CONSTANT_NT'"[The noun] [if the noun is clean]looks healthy[otherwise]is' {kind: text}} - IMPERATIVE_NT'after examining another person who is carrying something' {unit: 3} {imperative definition: 954} - IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 955} + IMPERATIVE_NT'after examining another person who is carrying something' {unit: 3} {imperative definition: 956} + IMPERATIVE_NT'when play begins' {unit: 3} {imperative definition: 957} HEADING_NT'section 5 - conversation' {heading 5} {under: H5'section 5 - conversation'} {unit: 3} SENTENCE_NT'a person has a table name called conversation' {unit: 3} {classified} VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve} @@ -1460,8 +1461,8 @@ for a lengthy read: PROPERTYCALLED_NT'called' UNPARSED_NOUN_NT'table name' {indefinite 'a' n/m/f nom/acc s} UNPARSED_NOUN_NT'conversation' - IMPERATIVE_NT'instead of asking someone about something' {unit: 3} {imperative definition: 956} - IMPERATIVE_NT'instead of telling someone about something' {unit: 3} {imperative definition: 957} + IMPERATIVE_NT'instead of asking someone about something' {unit: 3} {imperative definition: 958} + IMPERATIVE_NT'instead of telling someone about something' {unit: 3} {imperative definition: 959} SENTENCE_NT'understand "recap" or "recall" or "review" as recalling conv' {unit: 3} {classified} VERB_NT'understand' {verb 'understand' 3p p act IS_TENSE +ve} {prep2: as} {special meaning: understand-as} UNPARSED_NOUN_NT'"recap" or "recall" or "review"' @@ -1470,7 +1471,7 @@ for a lengthy read: VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} {special meaning: new-action} UNPARSED_NOUN_NT'recalling conversations' UNPARSED_NOUN_NT'applying to nothing' - IMPERATIVE_NT'carry out recalling conversations' {unit: 3} {imperative definition: 958} + IMPERATIVE_NT'carry out recalling conversations' {unit: 3} {imperative definition: 960} SENTENCE_NT'the conversation of a person is usually table of general chi' {unit: 3} {classified} {interpretation of subject: infs'person'} VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve} X_OF_Y_NT'conversation of a person' {definite 'the' n/m/f s/p nom/acc} {refined} @@ -1485,7 +1486,7 @@ for a lengthy read: PROPER_NOUN_NT'conversation' {refined} {eval: CONSTANT_NT {kind: table names valued property} {property: 'conversation'=table name}} PROPER_NOUN_NT'table of vanessa chatter' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: CONSTANT_NT'table of vanessa chatter' {kind: table name} {table: table_data} {meaning: {table of vanessa chatter = TABLE_MC}}} TABLE_NT'table of vanessa chatter topic reply summary turn stamp char' {unit: 3} - IMPERATIVE_NT'after reading a command' {unit: 3} {imperative definition: 959} + IMPERATIVE_NT'after reading a command' {unit: 3} {imperative definition: 961} HEADING_NT'section 6 - movement description' {heading 5} {under: H5'section 6 - movement description'} {unit: 3} SENTENCE_NT'a person has some text called walk style' {unit: 3} {classified} VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve} @@ -1532,8 +1533,8 @@ for a lengthy read: PROPER_NOUN_NT'"sashay"' {refined} {eval: CONSTANT_NT'"sashay"' {kind: text}} TABLE_NT'table of visible exits character second third heading chosen' {unit: 3} TABLE_NT'table of visible entrances character second third heading ch' {unit: 3} - IMPERATIVE_NT'to clear ( current table - a table name )' {unit: 3} {imperative definition: 960} - IMPERATIVE_NT'to tidy departures of ( current table - a table name )' {unit: 3} {imperative definition: 961} + IMPERATIVE_NT'to clear ( current table - a table name )' {unit: 3} {imperative definition: 962} + IMPERATIVE_NT'to tidy departures of ( current table - a table name )' {unit: 3} {imperative definition: 963} SENTENCE_NT'a door has a person called last opener' {unit: 3} {classified} {interpretation of subject: infs'person'} VERB_NT'has' {verb 'have' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: << kind=door(x) >>} {eval: TEST_VALUE_NT} @@ -1541,21 +1542,21 @@ for a lengthy read: PROPERTYCALLED_NT'called' UNPARSED_NOUN_NT'person' {indefinite 'a' n/m/f nom/acc s} UNPARSED_NOUN_NT'last opener' - IMPERATIVE_NT'report someone opening a door' {unit: 3} {imperative definition: 962} - IMPERATIVE_NT'report someone going through a door ( called route )' {unit: 3} {imperative definition: 963} + IMPERATIVE_NT'report someone opening a door' {unit: 3} {imperative definition: 964} + IMPERATIVE_NT'report someone going through a door ( called route )' {unit: 3} {imperative definition: 965} SENTENCE_NT'the last thing named is a thing that varies' {unit: 3} {classified} {interpretation of subject: infs'door'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'last thing named' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'last thing named' {nonlocal: 'last thing named'(var)thing}} {created here} COMMON_NOUN_NT'thing that varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=things variable-pointer(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before printing the name of something ( called target ) whic' {unit: 3} {imperative definition: 964} - IMPERATIVE_NT'report someone going a direction' {unit: 3} {imperative definition: 965} - IMPERATIVE_NT'this is the movement reporting rule' {unit: 3} {imperative definition: 966} - IMPERATIVE_NT'to generate descriptions from ( current table - a table name' {unit: 3} {imperative definition: 967} + IMPERATIVE_NT'before printing the name of something ( called target ) whic' {unit: 3} {imperative definition: 966} + IMPERATIVE_NT'report someone going a direction' {unit: 3} {imperative definition: 967} + IMPERATIVE_NT'this is the movement reporting rule' {unit: 3} {imperative definition: 968} + IMPERATIVE_NT'to generate descriptions from ( current table - a table name' {unit: 3} {imperative definition: 969} SENTENCE_NT'the last person named is a person that varies' {unit: 3} {classified} {interpretation of subject: infs'door'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'last person named' {definite 'the' n/m/f s/p nom/acc} {refined} {eval: NONLOCAL_VARIABLE_NT'last person named' {nonlocal: 'last person named'(var)person}} {created here} COMMON_NOUN_NT'person that varies' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'values variable-pointer'-k} {creation: << kind=people variable-pointer(x) >>} {eval: TEST_VALUE_NT} - IMPERATIVE_NT'before printing the name of a person ( called target )' {unit: 3} {imperative definition: 968} + IMPERATIVE_NT'before printing the name of a person ( called target )' {unit: 3} {imperative definition: 970} SENTENCE_NT'group size is a number that varies' {unit: 3} {classified} {interpretation of subject: infs'door'} VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'group size' {refined} {eval: NONLOCAL_VARIABLE_NT'group size' {nonlocal: 'group size'(var)number}} {created here} @@ -1564,19 +1565,19 @@ for a lengthy read: VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve} PROPER_NOUN_NT'group size' {refined} {eval: NONLOCAL_VARIABLE_NT'group size' {nonlocal: 'group size'(var)number} {meaning: {group size = VARIABLE_MC}}} PROPER_NOUN_NT'1' {refined} {eval: CONSTANT_NT'1' {kind: number} {explicit literal} {number: 1}} - IMPERATIVE_NT'to clear marked people' {unit: 3} {imperative definition: 969} - IMPERATIVE_NT'before listing nondescript items' {unit: 3} {imperative definition: 970} - IMPERATIVE_NT'to describe patients' {unit: 3} {imperative definition: 971} - IMPERATIVE_NT'to say ( named character - a man ) as pronoun' {unit: 3} {imperative definition: 972} - IMPERATIVE_NT'to say ( named character - a woman ) as pronoun' {unit: 3} {imperative definition: 973} - IMPERATIVE_NT'to say looks as though dipped in for ( index - a number )' {unit: 3} {imperative definition: 974} + IMPERATIVE_NT'to clear marked people' {unit: 3} {imperative definition: 971} + IMPERATIVE_NT'before listing nondescript items' {unit: 3} {imperative definition: 972} + IMPERATIVE_NT'to describe patients' {unit: 3} {imperative definition: 973} + IMPERATIVE_NT'to say ( named character - a man ) as pronoun' {unit: 3} {imperative definition: 974} + IMPERATIVE_NT'to say ( named character - a woman ) as pronoun' {unit: 3} {imperative definition: 975} + IMPERATIVE_NT'to say looks as though dipped in for ( index - a number )' {unit: 3} {imperative definition: 976} TABLE_NT'table of dipping phrases dipping "looks as though dipped in"' {unit: 3} SENTENCE_NT'a door is usually scenery' {unit: 3} {classified} {interpretation of subject: infs'door'} VERB_NT'is usually' {certainty:likely} {verb 'be' 3p s act IS_TENSE +ve} COMMON_NOUN_NT'door' {indefinite 'a' n/m/f nom/acc s} {refined} {refers: infs'door'} {creation: << kind=door(x) >>} {eval: TEST_VALUE_NT} ADJECTIVE_NT'scenery' {refined} {predicate: scenery} {creation: << scenery(x) ^ scenery(x) >>} - IMPERATIVE_NT'to make delimiter ( index - a number ) of ( count - a number' {unit: 3} {imperative definition: 975} - IMPERATIVE_NT'to say optional comma' {unit: 3} {imperative definition: 976} + IMPERATIVE_NT'to make delimiter ( index - a number ) of ( count - a number' {unit: 3} {imperative definition: 977} + IMPERATIVE_NT'to say optional comma' {unit: 3} {imperative definition: 978} SENTENCE_NT'test me with go to cold comfort / z / z / z / z / ask vaness' {unit: 3} {classified} VERB_NT'test' {verb 'test' 3p p act IS_TENSE +ve} {prep2: with} {special meaning: test-with} UNPARSED_NOUN_NT'me' diff --git a/docs/inform7/M-rc.html b/docs/inform7/M-rc.html index 088a11e7c..ea4cb2de0 100644 --- a/docs/inform7/M-rc.html +++ b/docs/inform7/M-rc.html @@ -91,6 +91,7 @@ -inbuild-verbose equivalent to -inbuild-verbosity=1 (default is -no-inbuild-verbose) -inbuild-verbosity=N how much inbuild should explain: lowest is 0 (default), highest is 3 -no-index don't produce an Index (default is -index) + -log-to-project X like -log X, but writing the debugging log into the project -no-problems don't produce (an HTML) Problems report page (default is -problems) -no-progress don't display progress percentages (default is -progress) -require-problem X return 0 unless exactly this Problem message is generated diff --git a/docs/inform7/preform-diagnostics.txt b/docs/inform7/preform-diagnostics.txt index fb652f153..3c19bc44b 100644 --- a/docs/inform7/preform-diagnostics.txt +++ b/docs/inform7/preform-diagnostics.txt @@ -1,6 +1,6 @@ internal nti 28 constraint (none) extremes [1, 1] - internal hits 1318/8632 nti 29 constraint (none) extremes [0, 0] + internal hits 1318/8636 nti 29 constraint (none) extremes [0, 0] internal hits 4036/8296 nti 30 constraint (none) extremes [0, 0] @@ -16,7 +16,7 @@ internal nti 7 constraint (none) extremes [1, 1] - internal hits 3010/26210 nti 8 constraint (none) extremes [1, 1] + internal hits 3010/26218 nti 8 constraint (none) extremes [1, 1] internal nti 9 constraint (none) extremes [1, 1] @@ -24,7 +24,7 @@ internal nti 11 constraint (none) extremes [1, 1] - internal hits 2/13878 nti 12 constraint (none) extremes [0, 0] + internal hits 2/13886 nti 12 constraint (none) extremes [0, 0] hits 0/18 nti 16 constraint DS = {16} extremes [3, infinity) English: @@ -33,17 +33,17 @@ {......} _or {......} (hits 0/9) constraint DS = {16} extremes [3, infinity) - hits 468/3194 nti 18 constraint DS = {17, 18} extremes [6, infinity) + hits 470/3202 nti 18 constraint DS = {17, 18} extremes [6, infinity) English: {...} ( ) - (hits 433/959) (matched long text) constraint DS = {17, 18} extremes [6, infinity) + (hits 435/963) (matched long text) constraint DS = {17, 18} extremes [6, infinity) {...} -- -- - (hits 35/526) (matched long text) constraint DS = {17, 18} extremes [6, infinity) + (hits 35/528) (matched long text) constraint DS = {17, 18} extremes [6, infinity) - hits 501/1232 nti 17 constraint DS = {17} extremes [3, 3] + hits 503/1236 nti 17 constraint DS = {17} extremes [3, 3] English: documented at {###} - (hits 501/501) (matched: 'documented at ph_say') constraint DS = {17} extremes [3, 3] + (hits 503/503) (matched: 'documented at ph_say') constraint DS = {17} extremes [3, 3] nti 19 constraint DS = {19} extremes [2, infinity) English: @@ -4707,7 +4707,7 @@ twelfth constraint CS = {27} extremes [1, 1] - internal hits 200/23596 nti r0 constraint CS = {r0} extremes [1, 1] + internal hits 200/23604 nti r0 constraint CS = {r0} extremes [1, 1] internal nti r1 constraint CS = {r1} extremes [1, 1] @@ -4729,23 +4729,23 @@ {...} constraint (none) extremes [1, infinity) - hits 86354/172708 nti 26 constraint (none) extremes [1, infinity) + hits 86428/172856 nti 26 constraint (none) extremes [1, infinity) English:
    {...} - (hits 16348/49345) (matched long text) constraint (none) extremes [2, infinity) + (hits 16348/49419) (matched long text) constraint (none) extremes [2, infinity) {...} - (hits 70006/70006) (matched long text) constraint (none) extremes [1, infinity) + (hits 70080/70080) (matched long text) constraint (none) extremes [1, infinity) nti 27 constraint (none) extremes [2, infinity) English:
    {...} constraint (none) extremes [2, infinity) -
    internal hits 16901/103016 nti r2 constraint (none) extremes [1, 1] +
    internal hits 16902/103180 nti r2 constraint (none) extremes [1, 1] - internal hits 20813/245166 nti r2 constraint (none) extremes [1, 1] + internal hits 20813/245294 nti r2 constraint (none) extremes [1, 1] - internal hits 2213/43638 nti r2 constraint (none) extremes [1, 1] + internal hits 2213/43666 nti r2 constraint (none) extremes [1, 1] nti r2 constraint CS = {r2} extremes [6, 6] English: @@ -4806,10 +4806,10 @@ other than constraint CS = {28} extremes [2, 2] - hits 16/22586 nti 29 constraint DS = {29} extremes [2, infinity) + hits 16/22594 nti 29 constraint DS = {29} extremes [2, infinity) English: not {...} - (hits 16/6759) (matched long text) constraint DS = {29} extremes [2, infinity) + (hits 16/6763) (matched long text) constraint DS = {29} extremes [2, infinity) hits 111/222 nti 30 constraint (none) extremes [1, infinity) English: @@ -4820,10 +4820,10 @@ {...} (hits 111/111) (matched: 'dvd carried by the person asked') constraint (none) extremes [1, infinity) - hits 0/22298 nti 6 constraint DS = {6} extremes [2, infinity) + hits 0/22306 nti 6 constraint DS = {6} extremes [2, infinity) English: no one {***} - (hits 0/4241) constraint DS = {6} extremes [2, infinity) + (hits 0/4245) constraint DS = {6} extremes [2, infinity) internal hits 123/1384 nti 28 constraint (none) extremes [1, 1] @@ -4914,7 +4914,7 @@ internal nti 12 constraint DS = {12} extremes [1, infinity) - internal hits 662/19346 nti 13 constraint DS = {13} extremes [1, infinity) + internal hits 662/19364 nti 13 constraint DS = {13} extremes [1, infinity) internal hits 258/8622 nti 14 constraint DS = {14} extremes [1, infinity) @@ -5217,10 +5217,10 @@ {...} (hits 67/1279) (matched: 'usually table of general chitchat') constraint DS = {14} extremes [2, infinity) - hits 798/26684 nti 6 constraint CS = {6} extremes [1, 1] + hits 798/26694 nti 6 constraint CS = {6} extremes [1, 1] English: which/who/that - (hits 798/5388) (matched: 'which') constraint CS = {6} extremes [1, 1] + (hits 798/5393) (matched: 'which') constraint CS = {6} extremes [1, 1] hits 3/2900 nti 12 constraint DS = {6} extremes [2, infinity) English: @@ -5250,22 +5250,22 @@ grammatical case (hits 1/1) (matched: 'grammatical case') constraint CS = {9} extremes [2, 2] - internal hits 2566/44526 nti 13 constraint (none) extremes [0, 0] + internal hits 2652/44698 nti 13 constraint (none) extremes [0, 0] internal hits 175/350 nti 14 constraint (none) extremes [1, infinity) - hits 24/68 nti 11 constraint DS = {11} extremes [3, infinity) + hits 24/76 nti 11 constraint DS = {11} extremes [3, infinity) English: ( ) - (hits 0/34) constraint DS = {11} extremes [3, infinity) + (hits 0/38) constraint DS = {11} extremes [3, infinity) name of kind of - (hits 21/31) (matched: 'name of kind of value of kind k') constraint DS = {11} extremes [5, infinity) + (hits 21/35) (matched: 'name of kind of value of kind k') constraint DS = {11} extremes [5, infinity) name of kind - (hits 3/13) (matched: 'name of kind k') constraint DS = {11} extremes [4, infinity) + (hits 3/17) (matched: 'name of kind k') constraint DS = {11} extremes [4, infinity) name of kind of {...} - (hits 0/10) constraint DS = {11} extremes [5, infinity) + (hits 0/14) constraint DS = {11} extremes [5, infinity) name of kind {...} - (hits 0/10) constraint DS = {11} extremes [4, infinity) + (hits 0/14) constraint DS = {11} extremes [4, infinity) hits 24/48 nti 10 constraint (none) extremes [1, infinity) English: @@ -5276,20 +5276,20 @@ (hits 5/5) (matched: 'value of kind k') constraint (none) extremes [1, infinity) - hits 5922/107764 nti r5 constraint (none) extremes [1, infinity) + hits 5941/107850 nti r5 constraint (none) extremes [1, infinity) English: ( ) - (hits 0/2337) constraint DS = {r5} & CW = {r2, r5} extremes [3, infinity) + (hits 0/2362) constraint DS = {r5} & CW = {r2, r5} extremes [3, infinity) ^ - (hits 1597/11930) (matched: 'k') constraint CW = {r2, r5} extremes [1, infinity) + (hits 1597/11973) (matched: 'k') constraint CW = {r2, r5} extremes [1, infinity) - (hits 202/10333) (matched: 'sayable value of kind k') constraint CW = {r2, r5} extremes [1, infinity) + (hits 207/10376) (matched: 'sayable value of kind k') constraint CW = {r2, r5} extremes [1, infinity) - (hits 3761/10131) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity) + (hits 3771/10169) (matched: 'an ice cream cone') constraint CW = {r2, r5} extremes [1, infinity) - (hits 2/16854) (matched: 'object-based rulebook') constraint DS = {r5} extremes [2, infinity) + (hits 2/16882) (matched: 'object-based rulebook') constraint DS = {r5} extremes [2, infinity) - (hits 360/6368) (matched long text) constraint CW = {r2, r5} extremes [1, infinity) + (hits 364/6396) (matched long text) constraint CW = {r2, r5} extremes [1, infinity) hits 40/338 nti 15 constraint (none) extremes [1, infinity) English: @@ -5298,92 +5298,92 @@ (hits 8/137) (matched: 'room') constraint (none) extremes [1, infinity) - hits 202/2566 nti r5 constraint CW = {r2, r5} extremes [1, infinity) + hits 207/2652 nti r5 constraint CW = {r2, r5} extremes [1, infinity) English: - (hits 120/647) (matched: 'k') constraint CW = {r2, r5} extremes [1, 1] + (hits 124/659) (matched: 'k') constraint CW = {r2, r5} extremes [1, 1] of kind - (hits 82/316) (matched: 'sayable value of kind k') constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity) + (hits 83/336) (matched: 'sayable value of kind k') constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity) - internal hits 3761/20262 nti r5 constraint CW = {r2, r5} extremes [1, infinity) + internal hits 3771/20338 nti r5 constraint CW = {r2, r5} extremes [1, infinity) - hits 2/33708 nti r5 constraint DS = {r5} extremes [2, infinity) + hits 2/33764 nti r5 constraint DS = {r5} extremes [2, infinity) English: indexed text - (hits 0/1096) constraint CS = {r5} extremes [2, 2] + (hits 0/1100) constraint CS = {r5} extremes [2, 2] indexed texts - (hits 0/1096) constraint CS = {r5} extremes [2, 2] + (hits 0/1100) constraint CS = {r5} extremes [2, 2] stored action - (hits 0/1096) constraint CS = {r5} extremes [2, 2] + (hits 0/1100) constraint CS = {r5} extremes [2, 2] stored actions - (hits 0/1096) constraint CS = {r5} extremes [2, 2] + (hits 0/1100) constraint CS = {r5} extremes [2, 2] object-based rulebook producing - (hits 0/5401) constraint DS = {r5} extremes [5, infinity) + (hits 0/5416) constraint DS = {r5} extremes [5, infinity) object-based rulebook producing - (hits 0/1274) constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity) + (hits 0/1293) constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity) object-based rulebook - (hits 2/1096) (matched: 'object-based rulebook') constraint CS = {r5} extremes [2, 2] + (hits 2/1100) (matched: 'object-based rulebook') constraint CS = {r5} extremes [2, 2] action-based rulebook - (hits 0/1094) constraint CS = {r5} extremes [2, 2] + (hits 0/1098) constraint CS = {r5} extremes [2, 2] object-based rule producing - (hits 0/5401) constraint DS = {r5} extremes [5, infinity) + (hits 0/5416) constraint DS = {r5} extremes [5, infinity) object-based rule producing - (hits 0/1274) constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity) + (hits 0/1293) constraint DS = {r5} & CW = {r2, r5} extremes [4, infinity) object-based rule - (hits 0/1094) constraint CS = {r5} extremes [2, 2] + (hits 0/1098) constraint CS = {r5} extremes [2, 2] action-based rule - (hits 0/1094) constraint CS = {r5} extremes [2, 2] + (hits 0/1098) constraint CS = {r5} extremes [2, 2] either-or property - (hits 0/1094) constraint CS = {r5} extremes [2, 2] + (hits 0/1098) constraint CS = {r5} extremes [2, 2] - internal hits 360/12736 nti r5 constraint CW = {r2, r5} extremes [1, infinity) + internal hits 364/12792 nti r5 constraint CW = {r2, r5} extremes [1, infinity) - hits 150/300 nti r5 constraint (none) extremes [1, infinity) + hits 157/314 nti r5 constraint (none) extremes [1, infinity) English: ( ) - (hits 0/50) constraint DS = {r5} extremes [3, infinity) + (hits 0/51) constraint DS = {r5} extremes [3, infinity)
    - (hits 0/51) constraint (none) extremes [2, infinity) + (hits 0/53) constraint (none) extremes [2, infinity) - (hits 150/150) (matched long text) constraint (none) extremes [1, infinity) + (hits 157/157) (matched long text) constraint (none) extremes [1, infinity) - hits 67/134 nti r5 constraint (none) extremes [1, infinity) + hits 69/138 nti r5 constraint (none) extremes [1, infinity) English: ( ) (hits 0/21) constraint DS = {r5} extremes [3, infinity)
    (hits 9/27) (matched: 'a value of kind k') constraint (none) extremes [2, infinity) nothing - (hits 19/40) (matched: 'nothing') constraint CS = {r5} extremes [1, 1] + (hits 19/42) (matched: 'nothing') constraint CS = {r5} extremes [1, 1] action - (hits 1/21) (matched: 'action') constraint CS = {r5} extremes [1, 1] + (hits 1/23) (matched: 'action') constraint CS = {r5} extremes [1, 1] - (hits 38/38) (matched: 'value of kind k') constraint (none) extremes [1, infinity) + (hits 40/40) (matched: 'value of kind k') constraint (none) extremes [1, infinity) - hits 15/30 nti r5 constraint (none) extremes [1, infinity) + hits 17/34 nti r5 constraint (none) extremes [1, infinity) English: ( ) - (hits 7/10) (matched long text) constraint DS = {r5} extremes [3, infinity) + (hits 9/12) (matched long text) constraint DS = {r5} extremes [3, infinity) nothing (hits 3/5) (matched: 'nothing') constraint CS = {r5} extremes [1, 1] (hits 5/5) (matched: 'value of kind k') constraint (none) extremes [1, infinity) - hits 17/34 nti r5 constraint (none) extremes [1, infinity) + hits 22/44 nti r5 constraint (none) extremes [1, infinity) English: , - (hits 10/16) (matched long text) constraint DS = {r5} extremes [3, infinity) + (hits 13/19) (matched long text) constraint DS = {r5} extremes [3, infinity) - (hits 7/7) (matched: 'value of kind l') constraint (none) extremes [1, infinity) + (hits 9/9) (matched: 'value of kind l') constraint (none) extremes [1, infinity) - hits 101/450 nti r5 constraint (none) extremes [1, infinity) + hits 102/454 nti r5 constraint (none) extremes [1, infinity) English: - (hits 101/225) (matched: 'sayable value') constraint (none) extremes [1, infinity) + (hits 102/227) (matched: 'sayable value') constraint (none) extremes [1, infinity) internal hits 1597/21294 nti r5 constraint CW = {r2, r5} extremes [1, 1] - internal hits 221/1496 nti r5 constraint CW = {r2, r5} extremes [1, 1] + internal hits 226/1522 nti r5 constraint CW = {r2, r5} extremes [1, 1] internal hits 0/774 nti 16 constraint (none) extremes [1, 1] @@ -5446,12 +5446,12 @@ internal nti 18 constraint (none) extremes [1, infinity) - hits 213/10956 nti 19 constraint DW = {12, 13} extremes [2, infinity) + hits 213/10964 nti 19 constraint DW = {12, 13} extremes [2, infinity) English: - (hits 205/4302) (matched long text) constraint DS = {12} extremes [2, infinity) + (hits 205/4304) (matched long text) constraint DS = {12} extremes [2, infinity) - (hits 8/3630) (matched long text) constraint DS = {13} extremes [3, infinity) + (hits 8/3632) (matched long text) constraint DS = {13} extremes [3, infinity) hits 205/2608 nti 12 constraint DS = {12} extremes [2, infinity) English: @@ -5470,35 +5470,35 @@ section {...} (hits 161/1260) (matched long text) constraint DS = {12} extremes [2, infinity) - hits 8/7260 nti 13 constraint DS = {13} extremes [3, infinity) + hits 8/7264 nti 13 constraint DS = {13} extremes [3, infinity) English: {...} begin/begins here - (hits 4/3630) (matched long text) constraint DS = {13} extremes [3, infinity) + (hits 4/3632) (matched long text) constraint DS = {13} extremes [3, infinity) {...} end/ends here - (hits 4/3626) (matched: 'the standard rules end here') constraint DS = {13} extremes [3, infinity) + (hits 4/3628) (matched: 'the standard rules end here') constraint DS = {13} extremes [3, infinity) - hits 32/13878 nti 15 constraint (none) extremes [1, infinity) + hits 32/13886 nti 15 constraint (none) extremes [1, infinity) English: (hits 0/20) constraint (none) extremes [1, 1] {...} - (hits 0/6919) constraint (none) extremes [2, infinity) + (hits 0/6923) constraint (none) extremes [2, infinity) - (hits 0/6749) constraint DS = {14} extremes [4, infinity) + (hits 0/6753) constraint DS = {14} extremes [4, infinity) * constraint CS = {15} extremes [1, 1] * constraint DS = {15} extremes [2, 2] table {...} - (hits 14/6760) (matched long text) constraint DS = {15} extremes [2, infinity) + (hits 14/6764) (matched long text) constraint DS = {15} extremes [2, infinity) equation {...} - (hits 0/6746) constraint DS = {15} extremes [2, infinity) + (hits 0/6750) constraint DS = {15} extremes [2, infinity) include the {...} by {...} - (hits 0/6734) constraint DS = {15} extremes [5, infinity) + (hits 0/6738) constraint DS = {15} extremes [5, infinity) include {...} by {...} - (hits 18/6746) (matched long text) constraint DS = {15} extremes [4, infinity) + (hits 18/6750) (matched long text) constraint DS = {15} extremes [4, infinity) include (- {...} - (hits 0/6728) constraint DS = {15} extremes [3, infinity) + (hits 0/6732) constraint DS = {15} extremes [3, infinity) hits 9/2942 nti 16 constraint DS = {16} extremes [2, infinity) English: @@ -5513,12 +5513,12 @@ when {...} (hits 4/1285) (matched: 'when scene begins is a scene based rulebook') constraint DS = {16} extremes [2, infinity) - hits 0/13498 nti 14 constraint DS = {14} extremes [4, infinity) + hits 0/13506 nti 14 constraint DS = {14} extremes [4, infinity) English: include (- {###} in the preform grammar (hits 0/106) constraint DS = {14} extremes [7, 7] use {...} language element/elements - (hits 0/6749) constraint DS = {14} extremes [4, infinity) + (hits 0/6753) constraint DS = {14} extremes [4, infinity) hits 39/488 nti 22 constraint DS = {22} extremes [2, infinity) English: @@ -5655,30 +5655,30 @@ the {...} (hits 1/1) (matched: 'the standard rules') constraint DS = {29} extremes [2, infinity) - hits 2957/19474 nti 30 constraint DS = {30} extremes [1, infinity) + hits 2957/19486 nti 30 constraint DS = {30} extremes [1, infinity) English: if {...} is begin (hits 0/5035) constraint DS = {30} extremes [4, infinity) if {...} is (hits 0/5623) constraint DS = {30} extremes [3, infinity) if/unless {...} - (hits 2182/7004) (matched long text) constraint DS = {30} extremes [2, infinity) + (hits 2182/7010) (matched long text) constraint DS = {30} extremes [2, infinity) repeat {...} - (hits 99/4822) (matched long text) constraint DS = {30} extremes [2, infinity) + (hits 99/4828) (matched long text) constraint DS = {30} extremes [2, infinity) while {...} - (hits 36/4723) (matched long text) constraint DS = {30} extremes [2, infinity) + (hits 36/4729) (matched long text) constraint DS = {30} extremes [2, infinity) else/otherwise (hits 338/338) (matched: 'otherwise') constraint CS = {30} extremes [1, 1] else/otherwise if/unless {...} (hits 233/3306) (matched long text) constraint DS = {30} extremes [3, infinity) else/otherwise {...} - (hits 69/4454) (matched long text) constraint DS = {30} extremes [2, infinity) + (hits 69/4460) (matched long text) constraint DS = {30} extremes [2, infinity) -- otherwise (hits 0/18) constraint CS = {30} extremes [2, 2] -- {...} - (hits 0/4385) constraint DS = {30} extremes [2, infinity) + (hits 0/4391) constraint DS = {30} extremes [2, infinity) - hits 22/12428 nti 6 constraint CS = {6} extremes [2, 2] + hits 22/12436 nti 6 constraint CS = {6} extremes [2, 2] English: end if/unless (hits 20/34) (matched: 'end if') constraint CS = {6} extremes [2, 2] @@ -5687,7 +5687,7 @@ end repeat (hits 0/12) constraint CS = {6} extremes [2, 2] - hits 785/14982 nti 7 constraint DS = {7} extremes [2, infinity) + hits 785/14986 nti 7 constraint DS = {7} extremes [2, infinity) English: say {...} (hits 604/2592) (matched long text) constraint DS = {7} extremes [2, infinity) @@ -5699,7 +5699,7 @@ {......} , {......} (hits 2332/2627) (matched long text) constraint DS = {8} extremes [3, infinity) - hits 30/10178 nti 9 constraint DS = {9} extremes [2, infinity) + hits 30/10182 nti 9 constraint DS = {9} extremes [2, infinity) English: instead {...} (hits 0/2050) constraint DS = {9} extremes [2, infinity) @@ -6797,14 +6797,14 @@ {***} {***} (hits 0/960) constraint (none) extremes [1, infinity) - hits 0/1710 nti 27 constraint (none) extremes [1, infinity) + hits 0/1718 nti 27 constraint (none) extremes [1, infinity) English: - (hits 0/707) constraint (none) extremes [1, 1] + (hits 0/711) constraint (none) extremes [1, 1] {***} (/)/{/}/,/. {***} (hits 0/44) constraint DS = {27} extremes [1, infinity) {***} {***} - (hits 0/855) constraint (none) extremes [1, infinity) + (hits 0/859) constraint (none) extremes [1, infinity) hits 0/84 nti 28 constraint (none) extremes [1, infinity) English: @@ -6818,7 +6818,7 @@ {***} something {***} constraint DS = {29} extremes [1, infinity) - hits 457/1482 nti 30 constraint DS = {30} extremes [2, infinity) + hits 459/1486 nti 30 constraint DS = {30} extremes [2, infinity) English: (- {###} - in to only (hits 17/27) (matched: '(- rtrue; - in to only') constraint DS = {30} extremes [6, 6] @@ -6827,11 +6827,11 @@ (- {###} - in to decide only (hits 0/7) constraint DS = {30} extremes [7, 7] (- {###} - (hits 436/442) (matched: '(- {-say:val:K} ') constraint DS = {30} extremes [2, 2] + (hits 438/444) (matched: '(- {-say:val:K} ') constraint DS = {30} extremes [2, 2] (- {###} {...} (hits 0/65) constraint DS = {30} extremes [3, infinity) - hits 48/2830 nti 6 constraint CS = {6} extremes [1, 1] + hits 48/2834 nti 6 constraint CS = {6} extremes [1, 1] English: definition (hits 48/48) (matched: 'definition') constraint CS = {6} extremes [1, 1] @@ -6866,47 +6866,47 @@ {...} (hits 28/28) (matched: 'going on') constraint (none) extremes [1, infinity) - hits 525/2734 nti 11 constraint DS = {11} extremes [1, infinity) + hits 527/2738 nti 11 constraint DS = {11} extremes [1, infinity) English: {to} constraint CS = {11} extremes [1, 1] to {...} ( called {...} ) - (hits 0/836) constraint DS = {11} extremes [6, infinity) + (hits 0/838) constraint DS = {11} extremes [6, infinity) {to ...} ( this is the {### function} inverse to {###} ) - (hits 16/704) (matched long text) constraint DS = {11} extremes [12, infinity) + (hits 16/706) (matched long text) constraint DS = {11} extremes [12, infinity) {to ...} ( this is the {### function} ) - (hits 4/754) (matched long text) constraint DS = {11} extremes [9, infinity) + (hits 4/756) (matched long text) constraint DS = {11} extremes [9, infinity) {to ...} ( this is {...} ) - (hits 0/798) constraint DS = {11} extremes [7, infinity) + (hits 0/800) constraint DS = {11} extremes [7, infinity) {to ...} - (hits 505/881) (matched long text) constraint DS = {11} extremes [2, infinity) + (hits 507/883) (matched long text) constraint DS = {11} extremes [2, infinity) - hits 1/1050 nti 12 constraint DS = {12} extremes [3, infinity) + hits 1/1054 nti 12 constraint DS = {12} extremes [3, infinity) English: to now {...} - (hits 1/521) (matched: 'to now ( cn - condition )') constraint DS = {12} extremes [3, infinity) + (hits 1/523) (matched: 'to now ( cn - condition )') constraint DS = {12} extremes [3, infinity) - hits 0/1050 nti 13 constraint CS = {13} extremes [2, 2] + hits 0/1054 nti 13 constraint CS = {13} extremes [2, 2] English: to begin constraint CS = {13} extremes [2, 2] - hits 545/1090 nti 14 constraint DS = {14} extremes [2, infinity) + hits 547/1094 nti 14 constraint DS = {14} extremes [2, infinity) English: to {decide yes/no} (hits 2/2) (matched: 'to decide yes') constraint CS = {14} extremes [3, 3] to {decide on ...} - (hits 1/496) (matched: 'to decide on ( something - value )') constraint DS = {14} extremes [4, infinity) + (hits 1/498) (matched: 'to decide on ( something - value )') constraint DS = {14} extremes [4, infinity) to decide whether/if the {...} - (hits 12/482) (matched long text) constraint DS = {14} extremes [5, infinity) + (hits 12/484) (matched long text) constraint DS = {14} extremes [5, infinity) to decide whether/if {...} - (hits 39/483) (matched long text) constraint DS = {14} extremes [4, infinity) + (hits 39/485) (matched long text) constraint DS = {14} extremes [4, infinity) to decide what/which is the {...} - (hits 96/409) (matched long text) constraint DS = {14} extremes [7, infinity) + (hits 96/411) (matched long text) constraint DS = {14} extremes [7, infinity) to decide what/which is {...} - (hits 74/323) (matched long text) constraint DS = {14} extremes [6, infinity) + (hits 74/325) (matched long text) constraint DS = {14} extremes [6, infinity) to {...} - (hits 321/321) (matched long text) constraint DS = {14} extremes [2, infinity) + (hits 323/323) (matched long text) constraint DS = {14} extremes [2, infinity) hits 170/340 nti 28 constraint (none) extremes [1, infinity) English: @@ -6915,133 +6915,133 @@ {...} constraint (none) extremes [1, infinity) - hits 546/1092 nti 17 constraint (none) extremes [1, infinity) + hits 548/1096 nti 17 constraint (none) extremes [1, infinity) English: ( deprecated ) - (hits 1/454) (matched long text) constraint DS = {17} extremes [4, infinity) + (hits 1/456) (matched long text) constraint DS = {17} extremes [4, infinity) - (hits 152/514) (matched long text) constraint DS = {15} extremes [2, infinity) + (hits 152/516) (matched long text) constraint DS = {15} extremes [2, infinity) - (hits 393/393) (matched long text) constraint (none) extremes [1, infinity) + (hits 395/395) (matched long text) constraint (none) extremes [1, infinity) - hits 415/830 nti 16 constraint (none) extremes [1, infinity) + hits 417/834 nti 16 constraint (none) extremes [1, infinity) English: ( arithmetic operation ) - (hits 16/357) (matched long text) constraint DS = {16} extremes [6, infinity) + (hits 16/359) (matched long text) constraint DS = {16} extremes [6, infinity) ( assignment operation ) - (hits 6/351) (matched long text) constraint DS = {16} extremes [5, infinity) + (hits 6/353) (matched long text) constraint DS = {16} extremes [5, infinity) {let ... be given by ...} - (hits 2/335) (matched long text) constraint DS = {16} extremes [6, infinity) + (hits 2/337) (matched long text) constraint DS = {16} extremes [6, infinity) {let ...} - (hits 4/359) (matched long text) constraint DS = {16} extremes [2, infinity) + (hits 4/361) (matched long text) constraint DS = {16} extremes [2, infinity) {...} -- end - (hits 0/352) constraint DS = {16} extremes [3, infinity) + (hits 0/354) constraint DS = {16} extremes [3, infinity) {...} -- end conditional - (hits 3/347) (matched long text) constraint DS = {16} extremes [4, infinity) + (hits 3/349) (matched long text) constraint DS = {16} extremes [4, infinity) {...} -- end loop - (hits 10/344) (matched long text) constraint DS = {16} extremes [4, infinity) + (hits 10/346) (matched long text) constraint DS = {16} extremes [4, infinity) {...} -- in loop - (hits 2/334) (matched: 'break -- in loop') constraint DS = {16} extremes [4, infinity) + (hits 2/336) (matched: 'break -- in loop') constraint DS = {16} extremes [4, infinity) {...} -- in {###} - (hits 0/332) constraint DS = {16} extremes [4, infinity) + (hits 0/334) constraint DS = {16} extremes [4, infinity) {...} - (hits 372/372) (matched long text) constraint (none) extremes [1, infinity) + (hits 374/374) (matched long text) constraint (none) extremes [1, infinity) - hits 168/1060 nti 15 constraint DS = {15} extremes [2, infinity) + hits 168/1064 nti 15 constraint DS = {15} extremes [2, infinity) English: -- running on - (hits 16/472) (matched long text) constraint DS = {15} extremes [4, infinity) + (hits 16/474) (matched long text) constraint DS = {15} extremes [4, infinity) {say otherwise/else} (hits 2/4) (matched: 'say otherwise') constraint CS = {15} extremes [2, 2] {say otherwise/else if/unless ...} - (hits 0/456) constraint DS = {15} extremes [4, infinity) + (hits 0/458) constraint DS = {15} extremes [4, infinity) {say if/unless ...} - (hits 2/472) (matched: 'say if ( c - condition )') constraint DS = {15} extremes [3, infinity) + (hits 2/474) (matched: 'say if ( c - condition )') constraint DS = {15} extremes [3, infinity) {say end if/unless} (hits 2/2) (matched: 'say end if') constraint CS = {15} extremes [3, 3] {say ...} -- beginning {###} - (hits 2/434) (matched: 'say one of -- beginning say_one_of') constraint DS = {15} extremes [5, infinity) + (hits 2/436) (matched: 'say one of -- beginning say_one_of') constraint DS = {15} extremes [5, infinity) {say ...} -- continuing {###} - (hits 1/432) (matched: 'say or -- continuing say_one_of') constraint DS = {15} extremes [5, infinity) + (hits 1/434) (matched: 'say or -- continuing say_one_of') constraint DS = {15} extremes [5, infinity) {say ...} -- ending {###} with marker {###} - (hits 9/373) (matched long text) constraint DS = {15} extremes [8, infinity) + (hits 9/375) (matched long text) constraint DS = {15} extremes [8, infinity) {say ...} -- ending {###} - (hits 1/422) (matched: 'say only -- ending say_first_time') constraint DS = {15} extremes [5, infinity) + (hits 1/424) (matched: 'say only -- ending say_first_time') constraint DS = {15} extremes [5, infinity) {say ...} - (hits 133/495) (matched long text) constraint DS = {15} extremes [2, infinity) + (hits 133/497) (matched long text) constraint DS = {15} extremes [2, infinity) - hits 0/1090 nti 18 constraint DS = {13, 18} extremes [8, infinity) + hits 0/1094 nti 18 constraint DS = {13, 18} extremes [8, infinity) English: ( {......} ) {} ( {......} ) - (hits 0/356) constraint DS = {13, 18} extremes [8, infinity) + (hits 0/358) constraint DS = {13, 18} extremes [8, infinity) - hits 2384/4768 nti 20 constraint (none) extremes [1, infinity) + hits 2392/4784 nti 20 constraint (none) extremes [1, infinity) English: ( ) {***} - (hits 0/1886) constraint DS = {20} extremes [2, infinity) + (hits 0/1894) constraint DS = {20} extremes [2, infinity) ( ) {***} - (hits 614/1848) (matched long text) constraint DS = {20} extremes [3, infinity) + (hits 618/1856) (matched long text) constraint DS = {20} extremes [3, infinity) ( {***} - (hits 0/1283) constraint DS = {20} extremes [1, infinity) + (hits 0/1287) constraint DS = {20} extremes [1, infinity) ) {***} - (hits 0/1283) constraint DS = {20} extremes [1, infinity) + (hits 0/1287) constraint DS = {20} extremes [1, infinity) {###} {***} - (hits 1770/1770) (matched long text) constraint (none) extremes [1, infinity) + (hits 1774/1774) (matched long text) constraint (none) extremes [1, infinity) - hits 614/1238 nti 19 constraint (none) extremes [1, infinity) + hits 618/1250 nti 19 constraint (none) extremes [1, infinity) English: {***} ( {***} - {......} - (hits 0/619) constraint DS = {19} extremes [3, infinity) + (hits 0/625) constraint DS = {19} extremes [3, infinity) {......} - a nonexisting variable - (hits 0/197) constraint DS = {19} extremes [5, infinity) + (hits 0/202) constraint DS = {19} extremes [5, infinity) {......} - a nonexisting variable - (hits 0/105) constraint DS = {19} extremes [6, infinity) + (hits 0/110) constraint DS = {19} extremes [6, infinity) {......} - a nonexisting that/which varies - (hits 0/66) constraint DS = {19} extremes [7, infinity) + (hits 0/71) constraint DS = {19} extremes [7, infinity) {......} - nonexisting variable - (hits 4/393) (matched: 't - nonexisting variable') constraint DS = {19} extremes [4, infinity) + (hits 4/399) (matched: 't - nonexisting variable') constraint DS = {19} extremes [4, infinity) {......} - nonexisting variable - (hits 5/197) (matched: 'loopvar - nonexisting k variable') constraint DS = {19} extremes [5, infinity) + (hits 5/202) (matched: 'loopvar - nonexisting k variable') constraint DS = {19} extremes [5, infinity) {......} - nonexisting that/which varies - (hits 0/105) constraint DS = {19} extremes [6, infinity) + (hits 0/110) constraint DS = {19} extremes [6, infinity) {......} - {an existing variable} - (hits 0/192) constraint DS = {19} extremes [5, infinity) + (hits 0/197) constraint DS = {19} extremes [5, infinity) {......} - {an existing variable} - (hits 0/105) constraint DS = {19} extremes [6, infinity) + (hits 0/110) constraint DS = {19} extremes [6, infinity) {......} - {an existing that/which varies} - (hits 0/66) constraint DS = {19} extremes [7, infinity) + (hits 0/71) constraint DS = {19} extremes [7, infinity) {......} - {existing variable} - (hits 2/384) (matched: 't - existing variable') constraint DS = {19} extremes [4, infinity) + (hits 2/390) (matched: 't - existing variable') constraint DS = {19} extremes [4, infinity) {......} - {existing variable} - (hits 0/192) constraint DS = {19} extremes [5, infinity) + (hits 0/197) constraint DS = {19} extremes [5, infinity) {......} - {existing that/which varies} - (hits 0/105) constraint DS = {19} extremes [6, infinity) + (hits 0/110) constraint DS = {19} extremes [6, infinity) {......} - a condition - (hits 0/382) constraint DS = {19} extremes [4, infinity) + (hits 0/388) constraint DS = {19} extremes [4, infinity) {......} - condition - (hits 9/608) (matched: 'c - condition') constraint DS = {19} extremes [3, infinity) + (hits 9/614) (matched: 'c - condition') constraint DS = {19} extremes [3, infinity) {......} - a phrase - (hits 0/382) constraint DS = {19} extremes [4, infinity) + (hits 0/388) constraint DS = {19} extremes [4, infinity) {......} - phrase - (hits 0/599) constraint DS = {19} extremes [3, infinity) + (hits 0/605) constraint DS = {19} extremes [3, infinity) {......} - storage - (hits 4/599) (matched: 's - storage') constraint DS = {19} extremes [3, infinity) + (hits 4/605) (matched: 's - storage') constraint DS = {19} extremes [3, infinity) {......} - a table-reference - (hits 0/382) constraint DS = {19} extremes [4, infinity) + (hits 0/388) constraint DS = {19} extremes [4, infinity) {......} - table-reference - (hits 3/595) (matched: 'tr - table-reference') constraint DS = {19} extremes [3, infinity) + (hits 3/601) (matched: 'tr - table-reference') constraint DS = {19} extremes [3, infinity) {......} - - (hits 563/592) (matched long text) constraint DS = {19} extremes [3, infinity) + (hits 567/598) (matched long text) constraint DS = {19} extremes [3, infinity) {......} - - (hits 2/29) (matched long text) constraint DS = {19} extremes [3, infinity) + (hits 2/31) (matched long text) constraint DS = {19} extremes [3, infinity) {......} - {......} - (hits 0/27) constraint DS = {19} extremes [3, infinity) + (hits 0/29) constraint DS = {19} extremes [3, infinity) - (hits 22/27) (matched: 'name of kind of enumerated value k') constraint (none) extremes [1, infinity) + (hits 22/29) (matched: 'name of kind of enumerated value k') constraint (none) extremes [1, infinity) {......} - (hits 0/5) constraint (none) extremes [1, infinity) + (hits 0/7) constraint (none) extremes [1, infinity) - internal hits 24/68 nti 29 constraint (none) extremes [1, infinity) + internal hits 24/76 nti 29 constraint (none) extremes [1, infinity) internal hits 106/3406 nti 30 constraint (none) extremes [1, infinity) @@ -7670,7 +7670,7 @@ i6/inter condition says so ( {...} ) (hits 1/24) (matched long text) constraint DS = {21} extremes [8, infinity) - hits 2131/24680 nti 19 constraint (none) extremes [1, infinity) + hits 2131/24688 nti 19 constraint (none) extremes [1, infinity) English: (hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1] @@ -7688,17 +7688,17 @@ (hits 1575/5756) (matched: 'Can be used for objects which are purely conceptual, like ideas, or are needed for internal book-keeping.') constraint (none) extremes [1, 1] - (hits 11/10320) (matched: 'plus infinity') constraint (none) extremes [1, infinity) + (hits 11/10324) (matched: 'plus infinity') constraint (none) extremes [1, infinity) (hits 100/379) (matched: 'false') constraint CS = {13} extremes [1, 1] - (hits 0/3246) constraint DS = {15} extremes [2, infinity) + (hits 0/3250) constraint DS = {15} extremes [2, infinity) unicode - (hits 0/3994) constraint DS = {19} extremes [2, infinity) + (hits 0/3998) constraint DS = {19} extremes [2, infinity) - (hits 0/3569) constraint DW = {16, 17, 18} extremes [2, 5] + (hits 0/3571) constraint DW = {16, 17, 18} extremes [2, 5] - (hits 0/10209) constraint (none) extremes [1, infinity) + (hits 0/10213) constraint (none) extremes [1, infinity) internal hits 716/1432 nti 28 constraint (none) extremes [1, 1] @@ -7717,9 +7717,9 @@ internal nti 7 constraint (none) extremes [1, infinity) - internal hits 0/20418 nti 8 constraint (none) extremes [1, infinity) + internal hits 0/20426 nti 8 constraint (none) extremes [1, infinity) - hits 11/20640 nti 11 constraint (none) extremes [1, infinity) + hits 11/20648 nti 11 constraint (none) extremes [1, infinity) English: _pi (hits 1/197) (matched: 'pi') constraint CS = {11} extremes [1, 1] @@ -7730,14 +7730,14 @@ minus infinity (hits 4/4) (matched: 'minus infinity') constraint CS = {11} extremes [2, 2] - (hits 1/10310) (matched: '0.5') constraint (none) extremes [1, infinity) + (hits 1/10314) (matched: '0.5') constraint (none) extremes [1, infinity) - internal hits 1/20620 nti 9 constraint (none) extremes [1, infinity) + internal hits 1/20628 nti 9 constraint (none) extremes [1, infinity) - hits 0/7138 nti 18 constraint DW = {16, 17, 18} extremes [2, 5] + hits 0/7142 nti 18 constraint DW = {16, 17, 18} extremes [2, 5] English: minus - (hits 0/833) constraint DS = {16, 18} extremes [3, 5] + (hits 0/835) constraint DS = {16, 18} extremes [3, 5] (hits 0/1192) constraint DS = {16} extremes [2, 4] @@ -7779,12 +7779,12 @@ internal nti 14 constraint (none) extremes [1, infinity) - hits 0/6492 nti 15 constraint DS = {15} extremes [2, infinity) + hits 0/6500 nti 15 constraint DS = {15} extremes [2, infinity) English: { } (hits 0/127) constraint CS = {15} extremes [2, 2] { } - (hits 0/1918) constraint DS = {15} extremes [3, infinity) + (hits 0/1922) constraint DS = {15} extremes [3, infinity) nti 14 constraint (none) extremes [1, infinity) English: @@ -7812,9 +7812,9 @@ internal hits 1992/5356 nti 21 constraint (none) extremes [1, infinity) - internal hits 1312/3144 nti 22 constraint (none) extremes [1, infinity) + internal hits 1316/3156 nti 22 constraint (none) extremes [1, infinity) - internal hits 563/1140 nti 23 constraint (none) extremes [1, infinity) + internal hits 567/1152 nti 23 constraint (none) extremes [1, infinity) hits 259/1824 nti 24 constraint (none) extremes [1, infinity) English: @@ -7827,24 +7827,24 @@ internal hits 0/244 nti 26 constraint (none) extremes [1, infinity) - hits 2444/21652 nti 28 constraint (none) extremes [1, infinity) + hits 2444/21656 nti 28 constraint (none) extremes [1, infinity) English: - (hits 1829/10826) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint (none) extremes [1, infinity) + (hits 1829/10828) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint (none) extremes [1, infinity) nothing (hits 103/165) (matched: 'nothing') constraint CS = {28} extremes [1, 1] - (hits 449/8894) (matched: 'printing the name of a dark room') constraint (none) extremes [1, infinity) + (hits 449/8896) (matched: 'printing the name of a dark room') constraint (none) extremes [1, infinity) outcome - (hits 0/2971) constraint DS = {28} extremes [2, infinity) + (hits 0/2973) constraint DS = {28} extremes [2, infinity) option - (hits 28/2971) (matched: 'serial comma option') constraint DS = {28} extremes [2, infinity) + (hits 28/2973) (matched: 'serial comma option') constraint DS = {28} extremes [2, infinity) verb - (hits 1/2943) (matched: 'verb are') constraint DS = {28} extremes [2, infinity) + (hits 1/2945) (matched: 'verb are') constraint DS = {28} extremes [2, infinity) response ( ) - (hits 34/775) (matched: 'list writer internal rule response ( k )') constraint DS = {28} extremes [5, infinity) + (hits 34/777) (matched: 'list writer internal rule response ( k )') constraint DS = {28} extremes [5, infinity) - internal hits 449/17788 nti 27 constraint (none) extremes [1, infinity) + internal hits 449/17792 nti 27 constraint (none) extremes [1, infinity) internal hits 0/244 nti 28 constraint (none) extremes [1, infinity) @@ -7865,37 +7865,37 @@ internal hits 818/22098 nti 9 constraint (none) extremes [1, infinity) - hits 705/22614 nti 10 constraint (none) extremes [1, infinity) + hits 705/22626 nti 10 constraint (none) extremes [1, infinity) English: - (hits 705/11307) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity) + (hits 705/11313) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity) - hits 1512/28410 nti 24 constraint (none) extremes [1, infinity) + hits 1512/28430 nti 24 constraint (none) extremes [1, infinity) English: not - (hits 0/3154) constraint DS = {24} extremes [3, infinity) + (hits 0/3163) constraint DS = {24} extremes [3, infinity) - (hits 0/7124) constraint (none) extremes [2, infinity) + (hits 0/7134) constraint (none) extremes [2, infinity) - (hits 1512/14205) (matched: 'marked for listing other') constraint (none) extremes [1, infinity) + (hits 1512/14215) (matched: 'marked for listing other') constraint (none) extremes [1, infinity) - hits 1583/30668 nti 23 constraint (none) extremes [1, infinity) + hits 1583/30688 nti 23 constraint (none) extremes [1, infinity) English: not - (hits 12/4586) (matched: 'not lockable') constraint DS = {23} extremes [2, infinity) + (hits 12/4595) (matched: 'not lockable') constraint DS = {23} extremes [2, infinity) - (hits 1500/2328) (matched: 'unmarked for listing') constraint CS = {r3} extremes [1, infinity) + (hits 1500/2329) (matched: 'unmarked for listing') constraint CS = {r3} extremes [1, infinity) not - (hits 0/3117) constraint DS = {23} extremes [3, infinity) + (hits 0/3126) constraint DS = {23} extremes [3, infinity) - (hits 71/7453) (matched: 'marked for listing other') constraint (none) extremes [2, infinity) + (hits 71/7463) (matched: 'marked for listing other') constraint (none) extremes [2, infinity) - internal hits 2299/19616 nti r3 constraint CS = {r3} extremes [1, infinity) + internal hits 2299/19638 nti r3 constraint CS = {r3} extremes [1, infinity) - hits 3753/94026 nti 11 constraint (none) extremes [1, infinity) + hits 3757/94078 nti 11 constraint (none) extremes [1, infinity) English: - (hits 2654/47013) (matched: 'value of kind k') constraint (none) extremes [1, infinity) + (hits 2658/47039) (matched: 'value of kind k') constraint (none) extremes [1, infinity) (hits 1099/2094) (matched: 'the alfred cralle pool hall') constraint CW = {r2, r4} extremes [1, infinity) @@ -7909,55 +7909,55 @@ (hits 131/330) (matched: 'alfred cralle pool hall') constraint CW = {r2, r4} extremes [1, infinity) - hits 784/5286 nti 14 constraint (none) extremes [1, infinity) + hits 784/5294 nti 14 constraint (none) extremes [1, infinity) English: - (hits 784/2643) (matched: 'marked for listing other') constraint (none) extremes [1, infinity) + (hits 784/2647) (matched: 'marked for listing other') constraint (none) extremes [1, infinity) - hits 1716/40162 nti 15 constraint (none) extremes [1, infinity) + hits 1716/40166 nti 15 constraint (none) extremes [1, infinity) English: - (hits 1450/20081) (matched long text) constraint (none) extremes [1, infinity) + (hits 1450/20083) (matched long text) constraint (none) extremes [1, infinity) - (hits 266/5025) (matched long text) constraint (none) extremes [3, infinity) + (hits 266/5027) (matched long text) constraint (none) extremes [3, infinity) - hits 262/2190 nti 16 constraint (none) extremes [1, infinity) + hits 262/2194 nti 16 constraint (none) extremes [1, infinity) English: - (hits 262/1095) (matched: 'thing ( called the item being printed )') constraint (none) extremes [1, infinity) + (hits 262/1097) (matched: 'thing ( called the item being printed )') constraint (none) extremes [1, infinity) - hits 1712/42352 nti 25 constraint (none) extremes [1, infinity) + hits 1712/42360 nti 25 constraint (none) extremes [1, infinity) English: ( called ) - (hits 108/1634) (matched long text) constraint DS = {25} extremes [5, infinity) + (hits 108/1638) (matched long text) constraint DS = {25} extremes [5, infinity) - (hits 1604/21068) (matched: 'the alfred cralle pool hall') constraint (none) extremes [1, infinity) + (hits 1604/21072) (matched: 'the alfred cralle pool hall') constraint (none) extremes [1, infinity) - hits 1712/42364 nti 17 constraint (none) extremes [1, infinity) + hits 1712/42372 nti 17 constraint (none) extremes [1, infinity) English: - (hits 67/10981) (matched: 'at least two stamped envelopes') constraint (none) extremes [2, infinity) + (hits 67/10985) (matched: 'at least two stamped envelopes') constraint (none) extremes [2, infinity) - (hits 156/21115) (matched: 'something') constraint (none) extremes [1, infinity) + (hits 156/21119) (matched: 'something') constraint (none) extremes [1, infinity) - (hits 22/10914) (matched: 'something switched on') constraint (none) extremes [2, infinity) + (hits 22/10918) (matched: 'something switched on') constraint (none) extremes [2, infinity) - (hits 2/10892) (matched: 'the person') constraint (none) extremes [2, infinity) + (hits 2/10896) (matched: 'the person') constraint (none) extremes [2, infinity) ^ ^ - (hits 0/10890) constraint (none) extremes [2, infinity) + (hits 0/10894) constraint (none) extremes [2, infinity) - (hits 54/10890) (matched: 'the alfred cralle pool hall') constraint (none) extremes [2, infinity) + (hits 54/10894) (matched: 'the alfred cralle pool hall') constraint (none) extremes [2, infinity) - (hits 621/10836) (matched: 'a marked for listing person') constraint (none) extremes [2, infinity) + (hits 621/10840) (matched: 'a marked for listing person') constraint (none) extremes [2, infinity) - (hits 790/20260) (matched: 'marked for listing other people') constraint (none) extremes [1, infinity) + (hits 790/20264) (matched: 'marked for listing other people') constraint (none) extremes [1, infinity) - hits 1478/42366 nti 18 constraint (none) extremes [1, infinity) + hits 1478/42374 nti 18 constraint (none) extremes [1, infinity) English: - (hits 1086/21183) (matched: 'nancy johnson memorial square') constraint (none) extremes [1, infinity) + (hits 1086/21187) (matched: 'nancy johnson memorial square') constraint (none) extremes [1, infinity) - (hits 392/10548) (matched: 'marked for listing other people') constraint (none) extremes [2, infinity) + (hits 392/10552) (matched: 'marked for listing other people') constraint (none) extremes [2, infinity) hits 2/300 nti 19 constraint (none) extremes [1, infinity) English: @@ -8024,9 +8024,9 @@ {...} (hits 35/35) (matched: 'random bystander') constraint (none) extremes [1, infinity) - internal hits 111/22298 nti 26 constraint (none) extremes [1, infinity) + internal hits 111/22306 nti 26 constraint (none) extremes [1, infinity) - internal hits 288/64900 nti 27 constraint (none) extremes [1, infinity) + internal hits 288/64916 nti 27 constraint (none) extremes [1, infinity) hits 1972/4930 nti 28 constraint (none) extremes [1, infinity) English: @@ -8035,41 +8035,41 @@ (hits 1846/2339) (matched long text) constraint (none) extremes [1, infinity) - hits 3190/7974 nti 8 constraint (none) extremes [1, infinity) + hits 3194/7986 nti 8 constraint (none) extremes [1, infinity) English: variable/variables - (hits 2/452) (matched: 'text variables') constraint DS = {8} extremes [2, infinity) + (hits 2/457) (matched: 'text variables') constraint DS = {8} extremes [2, infinity) that/which vary/varies - (hits 60/374) (matched: 'action based rule producing nothing that varies') constraint DS = {8} extremes [3, infinity) + (hits 60/379) (matched: 'action based rule producing nothing that varies') constraint DS = {8} extremes [3, infinity) - (hits 2492/3925) (matched long text) constraint (none) extremes [1, infinity) + (hits 2496/3931) (matched long text) constraint (none) extremes [1, infinity) - (hits 222/1433) (matched: 'Can be used for objects which are purely + (hits 222/1435) (matched: 'Can be used for objects which are purely conceptual, like ideas, or are needed for internal book-keeping.') constraint (none) extremes [1, infinity) - (hits 117/1211) (matched: 'for starting the virtual machine rules') constraint (none) extremes [1, infinity) + (hits 117/1213) (matched: 'for starting the virtual machine rules') constraint (none) extremes [1, infinity) - (hits 262/1094) (matched: 'thing ( called the item being printed )') constraint (none) extremes [1, infinity) + (hits 262/1096) (matched: 'thing ( called the item being printed )') constraint (none) extremes [1, infinity) - (hits 8/832) (matched: 'taking') constraint (none) extremes [1, infinity) + (hits 8/834) (matched: 'taking') constraint (none) extremes [1, infinity) - (hits 27/824) (matched long text) constraint (none) extremes [1, infinity) + (hits 27/826) (matched long text) constraint (none) extremes [1, infinity) (hits 0/26) constraint CW = {r2, r4} extremes [1, infinity) - hits 1292/3104 nti 29 constraint (none) extremes [1, infinity) + hits 1296/3116 nti 29 constraint (none) extremes [1, infinity) English:
    - (hits 192/831) (matched: 'an ice cream cone') constraint (none) extremes [2, infinity) + (hits 193/837) (matched: 'a list of values of kind k') constraint (none) extremes [2, infinity) - (hits 1100/1360) (matched long text) constraint (none) extremes [1, infinity) + (hits 1103/1365) (matched long text) constraint (none) extremes [1, infinity) - hits 1292/3104 nti 30 constraint (none) extremes [1, infinity) + hits 1296/3116 nti 30 constraint (none) extremes [1, infinity) English: - (hits 74/1552) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity) + (hits 74/1558) (matched: 'unmarked for listing') constraint (none) extremes [1, infinity) - (hits 1218/1478) (matched long text) constraint (none) extremes [1, infinity) + (hits 1222/1484) (matched long text) constraint (none) extremes [1, infinity) hits 62/126 nti 7 constraint (none) extremes [1, infinity) English: @@ -8232,28 +8232,28 @@ to constraint DS = {6} extremes [3, infinity) - hits 266/10404 nti 21 constraint (none) extremes [3, infinity) + hits 266/10408 nti 21 constraint (none) extremes [3, infinity) English: - (hits 175/4297) (matched long text) constraint DS = {13} extremes [3, infinity) + (hits 175/4299) (matched long text) constraint DS = {13} extremes [3, infinity) - (hits 91/2607) (matched long text) constraint DS = {6} extremes [4, infinity) + (hits 91/2609) (matched long text) constraint DS = {6} extremes [4, infinity) - hits 474/31900 nti 30 constraint DS = {13} extremes [2, infinity) + hits 474/31922 nti 30 constraint DS = {13} extremes [2, infinity) English: - (hits 473/9643) (matched long text) constraint DS = {13} extremes [2, infinity) + (hits 473/9652) (matched long text) constraint DS = {13} extremes [2, infinity) not - (hits 1/6458) (matched: 'not carried by the person asked') constraint DS = {13, 30} extremes [3, infinity) + (hits 1/6460) (matched: 'not carried by the person asked') constraint DS = {13, 30} extremes [3, infinity) - hits 183/23370 nti 22 constraint DS = {6} extremes [3, infinity) + hits 183/23392 nti 22 constraint DS = {6} extremes [3, infinity) English: - (hits 0/2784) constraint DS = {6} extremes [5, infinity) + (hits 0/2785) constraint DS = {6} extremes [5, infinity) - (hits 32/3759) (matched long text) constraint DS = {6, 14} extremes [4, infinity) + (hits 32/3761) (matched long text) constraint DS = {6, 14} extremes [4, infinity) - (hits 151/6287) (matched: 'which provide the property initial appearance') constraint DS = {6} extremes [3, infinity) + (hits 151/6289) (matched: 'which provide the property initial appearance') constraint DS = {6} extremes [3, infinity) internal hits 823/18984 nti 23 constraint (none) extremes [1, infinity) @@ -8839,26 +8839,26 @@ matching key (hits 1/1) (matched: 'matching key') constraint CS = {6} extremes [2, 2] - hits 288/63632 nti 7 constraint DS = {7} extremes [1, infinity) + hits 288/63648 nti 7 constraint DS = {7} extremes [1, infinity) English: _something/anything {***} - (hits 207/8084) (matched long text) constraint DS = {7} extremes [1, infinity) + (hits 207/8092) (matched long text) constraint DS = {7} extremes [1, infinity) _somewhere/anywhere {***} - (hits 0/7877) constraint DS = {7} extremes [1, infinity) + (hits 0/7885) constraint DS = {7} extremes [1, infinity) _someone/anyone/somebody/anybody {***} - (hits 57/7877) (matched: 'someone') constraint DS = {7} extremes [1, infinity) + (hits 57/7885) (matched: 'someone') constraint DS = {7} extremes [1, infinity) _everything {***} - (hits 0/7820) constraint DS = {7} extremes [1, infinity) + (hits 0/7828) constraint DS = {7} extremes [1, infinity) _everywhere {***} - (hits 0/7820) constraint DS = {7} extremes [1, infinity) + (hits 0/7828) constraint DS = {7} extremes [1, infinity) _everyone/everybody {***} - (hits 0/7820) constraint DS = {7} extremes [1, infinity) + (hits 0/7828) constraint DS = {7} extremes [1, infinity) _nowhere {***} - (hits 24/7820) (matched: 'nowhere') constraint DS = {7} extremes [1, infinity) + (hits 24/7828) (matched: 'nowhere') constraint DS = {7} extremes [1, infinity) _nobody/no-one {***} - (hits 0/7796) constraint DS = {7} extremes [1, infinity) + (hits 0/7804) constraint DS = {7} extremes [1, infinity) _no _one {***} - (hits 0/7434) constraint DS = {7} extremes [2, infinity) + (hits 0/7442) constraint DS = {7} extremes [2, infinity) hits 0/2186 nti 8 constraint CS = {8} extremes [1, 1] English: @@ -9390,7 +9390,7 @@ internal hits 0/662 nti 25 constraint (none) extremes [1, infinity) - internal hits 1229/32518 nti 26 constraint (none) extremes [0, 0] + internal hits 1229/32526 nti 26 constraint (none) extremes [0, 0] internal hits 1308/2616 nti 27 constraint (none) extremes [0, 0] @@ -9407,7 +9407,7 @@ (hits 235/587) (matched long text) constraint (none) extremes [1, infinity) - internal hits 8/20718 nti 29 constraint (none) extremes [1, infinity) + internal hits 8/20722 nti 29 constraint (none) extremes [1, infinity) hits 27/2838 nti 30 constraint (none) extremes [1, infinity) English: diff --git a/docs/supervisor-module/1-ic.html b/docs/supervisor-module/1-ic.html index b57782ce8..6d7cbf9b5 100644 --- a/docs/supervisor-module/1-ic.html +++ b/docs/supervisor-module/1-ic.html @@ -59,7 +59,7 @@ function togglePopup(material_id) {

    Who shall supervise the supervisor? This section of code will.

    -
    +

    §1. Verbosity. It is both a strength and a source of anxiety that build managers work in an autonomous sort of way, doing "whatever is necessary". Some users want @@ -256,7 +256,7 @@ better way to choose a virtual machine to compile to. CommandLine::declare_switch(DEPRECATED_EXTERNAL_CLSW, L"deprecated-external", 2, L"same as -external X, but issues warnings if the nest is actually used"); CommandLine::declare_switch(TRANSIENT_CLSW, L"transient", 2, - L"use X for transient data such as the extensions census"); + L"(an option now withdrawn)"); CommandLine::end_group();

    • This code is used in §6.
    @@ -276,7 +276,7 @@ but -pipeline-file CommandLine::begin_group(INBUILD_INTER_CLSG, I"for tweaking code generation from Inter"); CommandLine::declare_switch(KIT_CLSW, L"kit", 2, - L"include Inter code from the kit called X"); + L"(an option now withdrawn)"); CommandLine::declare_switch(PIPELINE_CLSW, L"pipeline", 2, L"specify code-generation pipeline by name (default is \"compile\")"); CommandLine::declare_switch(PIPELINE_FILE_CLSW, L"pipeline-file", 2, @@ -294,7 +294,6 @@ set appropriately. filename *inter_pipeline_file = NULL; filename *transpiled_output_file = NULL; dictionary *pipeline_vars = NULL; -pathname *shared_transient_resources = NULL; int this_is_a_debug_compile = FALSE; Destined to be compiled with debug features int this_is_a_release_compile = FALSE; Omit sections of source text marked not for release text_stream *output_format = NULL; What story file we will eventually have @@ -352,20 +351,21 @@ it doesn't know about, that will be one of ours, so it should call the following Nests::deprecate(Supervisor::add_nest(Pathnames::from_text(arg), EXTERNAL_NEST_TAG)); break; case TRANSIENT_CLSW: - shared_transient_resources = Pathnames::from_text(arg); break; + Errors::fatal("the -transient option has been withdrawn"); + break; case BASIC_CLSW: Projects::enter_forcible_basic_mode(); break; case KIT_CLSW: Errors::fatal("the -kit option has been withdrawn"); break; case PROJECT_CLSW: { pathname *P = Pathnames::from_text(arg); - if (Supervisor::set_I7_bundle(P) == FALSE) + if (Supervisor::set_I7_bundle(P) == FALSE) Errors::fatal_with_text("can't specify the project twice: '%S'", arg); break; } case SOURCE_CLSW: { filename *F = Filenames::from_text(arg); - if (Supervisor::set_I7_source(F) == FALSE) + if (Supervisor::set_I7_source(F) == FALSE) Errors::fatal_with_text("can't specify the source file twice: '%S'", arg); break; } @@ -446,7 +446,7 @@ which continues until the parent calls shared_preform_callback = preform_callback; Find the virtual machine10.1; - Supervisor::make_project_from_command_line(C); + Supervisor::make_project_from_command_line(C); Supervisor::enter_phase(TINKERING_INBUILD_PHASE); Supervisor::sort_nest_list(); @@ -524,12 +524,8 @@ hold extensions, kits, language definitions, and so on.
    • (a) The "internal" nest is part of the installation of Inform as software. It contains, for example, the build-in extensions. But it also contains miscellaneous other files needed by Inform (see below). -
    • (b) The "external" nest is the one to which the user installs her own -selection of extensions, and so on. On most platforms, the external nest -is also the default home of "transient" storage, for more ephemeral content, -such as the mechanically generated extension documentation. Some mobile -operating systems are aggressive about wanting to delete ephemeral files -used by applications, so -transient can be used to divert these. +
    • (b) The "external" nest is a place in which extensions to be shared among +multiple projects can be stored.
    • (c) Every project has its own private nest, in the form of its associated Materials folder. For example, in Jane Eyre.inform is a project, then alongside it is Jane Eyre.materials and this is a nest. The shared nest @@ -659,21 +655,7 @@ just plain old files. return Supervisor::default_internal_path(); } -

      §19. The transient area can be used for build files for project files, where -there's no build directory provided by the project bundle. -transient sets -it, but otherwise the external nest is used. -

      - -
      -pathname *Supervisor::transient(void) {
      -    RUN_ONLY_FROM_PHASE(TINKERING_INBUILD_PHASE)
      -    if (shared_transient_resources == NULL)
      -        if (shared_external_nest)
      -            return shared_external_nest->location;
      -    return shared_transient_resources;
      -}
      -
      -

      §20. The shared project. In any single run, each of the Inform tools concerns itself with a single +

      §19. The shared project. In any single run, each of the Inform tools concerns itself with a single Inform 7 program. This can be presented to it either in a project bundle (a directory which contains source, settings, space for an index and for temporary build files), or as a single file (just a text file containing @@ -689,7 +671,7 @@ specify the bundle twice, or specify the file twice. pathname *project_bundle_request = NULL; filename *project_file_request = NULL; -int Supervisor::set_I7_source(filename *F) { +int Supervisor::set_I7_source(filename *F) { RUN_ONLY_FROM_PHASE(CONFIGURATION_INBUILD_PHASE) if (project_file_request) return FALSE; project_file_request = F; @@ -697,7 +679,7 @@ specify the bundle twice, or specify the file twice. return TRUE; } -

      §21. If we are given a -project on the command line, we can then work out +

      §20. If we are given a -project on the command line, we can then work out where its Materials folder is, and therefore where any expert settings files would be. Note that the name of the expert settings file depends on the name of the parent, i.e., it will be inform7-settings.txt or inbuild-settings.txt @@ -705,7 +687,7 @@ depending on who's asking.

      -int Supervisor::set_I7_bundle(pathname *P) {
      +int Supervisor::set_I7_bundle(pathname *P) {
           RUN_ONLY_FROM_PHASE(CONFIGURATION_INBUILD_PHASE)
           if (project_bundle_request) return FALSE;
           project_bundle_request = P;
      @@ -725,7 +707,7 @@ depending on who's asking.
           return TRUE;
       }
       
      -

      §22. This is a deceptively simple-looking function, which took a lot of time +

      §21. This is a deceptively simple-looking function, which took a lot of time to get right. The situation is that the parent tool may already have identified a copy C to be the main Inform project of this run, or it may not. If it has, we ignore -project but apply -source to change its source text @@ -736,7 +718,7 @@ location. If it hasn't, we create a project using inform_project *chosen_project = NULL; -void Supervisor::make_project_from_command_line(inbuild_copy *C) { +void Supervisor::make_project_from_command_line(inbuild_copy *C) { RUN_ONLY_IN_PHASE(PRETINKERING_INBUILD_PHASE) filename *F = NULL; result of -source at the command line @@ -773,7 +755,7 @@ location. If it hasn't, we create a project using } } -inform_project *Supervisor::project_set_at_command_line(void) { +inform_project *Supervisor::project_set_at_command_line(void) { return chosen_project; } diff --git a/docs/supervisor-module/4-pbm.html b/docs/supervisor-module/4-pbm.html index 71e3982d0..4d9a7398b 100644 --- a/docs/supervisor-module/4-pbm.html +++ b/docs/supervisor-module/4-pbm.html @@ -131,7 +131,7 @@ not a file, false if we know the reverse, and otherwise not applicable. } } -inbuild_copy *ProjectBundleManager::claim_folder_as_copy(pathname *P) { +inbuild_copy *ProjectBundleManager::claim_folder_as_copy(pathname *P) { if (Directories::exists(P) == FALSE) return NULL; inbuild_copy *C = ProjectBundleManager::new_copy(Pathnames::directory_name(P), P); Police extraneous contents3.1; diff --git a/docs/supervisor-module/4-pfm.html b/docs/supervisor-module/4-pfm.html index de3efcc49..6bfd13cc4 100644 --- a/docs/supervisor-module/4-pfm.html +++ b/docs/supervisor-module/4-pfm.html @@ -132,7 +132,7 @@ or .i7. } } -inbuild_copy *ProjectFileManager::claim_file_as_copy(filename *F) { +inbuild_copy *ProjectFileManager::claim_file_as_copy(filename *F) { if (TextFiles::exists(F) == FALSE) return NULL; inbuild_copy *C = ProjectFileManager::new_copy(Filenames::get_leafname(F), F); inform_project *proj = ProjectFileManager::from_copy(C); diff --git a/docs/supervisor-module/5-es.html b/docs/supervisor-module/5-es.html index 2e334590d..f10f20166 100644 --- a/docs/supervisor-module/5-es.html +++ b/docs/supervisor-module/5-es.html @@ -917,7 +917,7 @@ no project involved, we must take action ourselves.)

       void Extensions::construct_graph(inform_extension *E) {
      -    if (Supervisor::project_set_at_command_line() == NULL) {
      +    if (Supervisor::project_set_at_command_line() == NULL) {
               Copies::get_source_text(E->as_copy, I"graphing extension");
               Sentences::set_start_of_source(sfsm, -1);
               Inclusions::traverse(E->as_copy, E->syntax_tree);
      diff --git a/docs/supervisor-module/5-ps2.html b/docs/supervisor-module/5-ps2.html
      index bec5048eb..174579705 100644
      --- a/docs/supervisor-module/5-ps2.html
      +++ b/docs/supervisor-module/5-ps2.html
      @@ -244,7 +244,7 @@ but ending .materials<
       

      -pathname *Projects::materialise_pathname(pathname *in, text_stream *leaf) {
      +pathname *Projects::materialise_pathname(pathname *in, text_stream *leaf) {
           TEMPORARY_TEXT(mf)
           WRITE_TO(mf, "%S", leaf);
           int i = Str::len(mf)-1;
      @@ -286,9 +286,7 @@ is small, but one likes to minimise the effect of the CWD.)
       }
       
       pathname *Projects::build_path(inform_project *proj) {
      -    if (proj->as_copy->location_if_path)
      -        return Pathnames::down(Projects::path(proj), I"Build");
      -    return Supervisor::transient();
      +    return Pathnames::down(Projects::path(proj), I"Build");
       }
       
       inbuild_nest *Projects::materials_nest(inform_project *proj) {
      @@ -332,7 +330,7 @@ reasons, this list is created on demand.
       

      -inform_project *Projects::from_copy(inbuild_copy *C) {
      +inform_project *Projects::from_copy(inbuild_copy *C) {
           inform_project *project = ProjectBundleManager::from_copy(C);
           if (project == NULL) project = ProjectFileManager::from_copy(C);
           return project;
      @@ -343,7 +341,7 @@ has a single, "primary", one.
       

      -void Projects::set_primary_source(inform_project *proj, filename *F) {
      +void Projects::set_primary_source(inform_project *proj, filename *F) {
           proj->primary_source = F;
       }
       
      @@ -914,7 +912,7 @@ details instead.
       

      §31. File to write to.

      -void Projects::set_primary_output(inform_project *proj, filename *F) {
      +void Projects::set_primary_output(inform_project *proj, filename *F) {
           proj->primary_output = F;
       }
       
      diff --git a/docs/supervisor-module/7-ti.html b/docs/supervisor-module/7-ti.html
      index c7f865b7d..89fca9fa9 100644
      --- a/docs/supervisor-module/7-ti.html
      +++ b/docs/supervisor-module/7-ti.html
      @@ -106,7 +106,7 @@ produces a second report.
       
       
       void ExtensionInstaller::install(inbuild_copy *C, int confirmed, pathname *to_tool, int meth) {
      -    inform_project *project = Supervisor::project_set_at_command_line();
      +    inform_project *project = Supervisor::project_set_at_command_line();
           if (project == NULL) Errors::fatal("-project not set at command line");
           TEMPORARY_TEXT(pname)
           WRITE_TO(pname, "'%S'", project->as_copy->edition->work->title);
      @@ -555,15 +555,15 @@ produces a second report.
       
       
       void ExtensionInstaller::uninstall(inbuild_copy *C, int confirmed, pathname *to_tool, int meth) {
      -    inform_project *project = Supervisor::project_set_at_command_line();
      +    inform_project *project = Supervisor::project_set_at_command_line();
           if (project == NULL) Errors::fatal("-project not set at command line");
           TEMPORARY_TEXT(pname)
           WRITE_TO(pname, "'%S'", project->as_copy->edition->work->title);
           text_stream *OUT = NULL;
           if ((C->edition->work->genre == extension_genre) ||
               (C->edition->work->genre == extension_bundle_genre)) {
      +        Begin uninstaller report3.1;
               if (OUT) {
      -            Begin uninstaller report3.1;
                   if (confirmed) Make confirmed uninstaller report3.3
                   else Make unconfirmed uninstaller report3.2;
               }
      @@ -831,13 +831,10 @@ produces a second report.
       
       void ExtensionInstaller::install_button(OUTPUT_STREAM, inform_project *proj,
           inbuild_copy *C) {
      -    TEMPORARY_TEXT(URL)
      -    if (C->location_if_file)
      -        WRITE_TO(URL, "%f", C->location_if_file);
      -    else
      -        WRITE_TO(URL, "%p", C->location_if_path);
      -    HTML_OPEN_WITH("a", "class=\"registrycontentslink\" href='javascript:project().install(\"%S\")'", URL);
      -    DISCARD_TEXT(URL)
      +    TEMPORARY_TEXT(js_path)
      +    Get the extension path escaped for use in Javascript7.1
      +    HTML_OPEN_WITH("a", "class=\"registrycontentslink\" href='javascript:project().install(\"%S\")'", js_path);
      +    DISCARD_TEXT(js_path)
           ExtensionInstaller::install_icon(OUT);
           HTML_CLOSE("a");
       }
      @@ -848,13 +845,10 @@ produces a second report.
       
       void ExtensionInstaller::uninstall_button(OUTPUT_STREAM, inform_project *proj,
           inbuild_copy *C) {
      -    TEMPORARY_TEXT(URL)
      -    if (C->location_if_file)
      -        WRITE_TO(URL, "%f", C->location_if_file);
      -    else
      -        WRITE_TO(URL, "%p", C->location_if_path);
      -    HTML_OPEN_WITH("a", "class=\"registrycontentslink\" href='javascript:project().uninstall(\"%S\")'", URL);
      -    DISCARD_TEXT(URL)
      +    TEMPORARY_TEXT(js_path)
      +    Get the extension path escaped for use in Javascript7.1
      +    HTML_OPEN_WITH("a", "class=\"registrycontentslink\" href='javascript:project().uninstall(\"%S\")'", js_path);
      +    DISCARD_TEXT(js_path)
           ExtensionInstaller::uninstall_icon(OUT);
           HTML_CLOSE("a");
       }
      @@ -863,6 +857,25 @@ produces a second report.
           WRITE("<span class=\"paste\">%c%c</span>", 0x2198, 0xFE0F);  Unicode "down right arrow"
       }
       
      +

      §7.1. Get the extension path escaped for use in Javascript7.1 = +

      + +
      +    TEMPORARY_TEXT(path)
      +    if (C->location_if_file)
      +        WRITE_TO(path, "%f", C->location_if_file);
      +    else
      +        WRITE_TO(path, "%p", C->location_if_path);
      +    LOOP_THROUGH_TEXT(pos, path) {
      +        wchar_t c = Str::get(pos);
      +        if (c == '\\')
      +            WRITE_TO(js_path, "\\\\");
      +        else
      +            PUT_TO(js_path, c);
      +    }
      +    DISCARD_TEXT(path)
      +
      +
      • This code is used in §7 (twice).
      diff --git a/inbuild/supervisor-module/Chapter 1/Inbuild Control.w b/inbuild/supervisor-module/Chapter 1/Inbuild Control.w index 1de681cbc..e2ae7cb73 100644 --- a/inbuild/supervisor-module/Chapter 1/Inbuild Control.w +++ b/inbuild/supervisor-module/Chapter 1/Inbuild Control.w @@ -186,7 +186,7 @@ better way to choose a virtual machine to compile to. CommandLine::declare_switch(DEPRECATED_EXTERNAL_CLSW, L"deprecated-external", 2, L"same as -external X, but issues warnings if the nest is actually used"); CommandLine::declare_switch(TRANSIENT_CLSW, L"transient", 2, - L"use X for transient data such as the extensions census"); + L"(an option now withdrawn)"); CommandLine::end_group(); @ These are all new in 2020. They are not formally shared with the |inter| tool, @@ -202,7 +202,7 @@ but |-pipeline-file| and |-variable| have the same effect as they would there. @ = CommandLine::begin_group(INBUILD_INTER_CLSG, I"for tweaking code generation from Inter"); CommandLine::declare_switch(KIT_CLSW, L"kit", 2, - L"include Inter code from the kit called X"); + L"(an option now withdrawn)"); CommandLine::declare_switch(PIPELINE_CLSW, L"pipeline", 2, L"specify code-generation pipeline by name (default is \"compile\")"); CommandLine::declare_switch(PIPELINE_FILE_CLSW, L"pipeline-file", 2, @@ -218,7 +218,6 @@ set appropriately. filename *inter_pipeline_file = NULL; filename *transpiled_output_file = NULL; dictionary *pipeline_vars = NULL; -pathname *shared_transient_resources = NULL; int this_is_a_debug_compile = FALSE; /* Destined to be compiled with debug features */ int this_is_a_release_compile = FALSE; /* Omit sections of source text marked not for release */ text_stream *output_format = NULL; /* What story file we will eventually have */ @@ -272,7 +271,8 @@ void Supervisor::option(int id, int val, text_stream *arg, void *state) { Nests::deprecate(Supervisor::add_nest(Pathnames::from_text(arg), EXTERNAL_NEST_TAG)); break; case TRANSIENT_CLSW: - shared_transient_resources = Pathnames::from_text(arg); break; + Errors::fatal("the -transient option has been withdrawn"); + break; case BASIC_CLSW: Projects::enter_forcible_basic_mode(); break; case KIT_CLSW: Errors::fatal("the -kit option has been withdrawn"); @@ -424,12 +424,8 @@ But among nests three are special, and can hold other things as well. It contains, for example, the build-in extensions. But it also contains miscellaneous other files needed by Inform (see below). -(b) The "external" nest is the one to which the user installs her own -selection of extensions, and so on. On most platforms, the external nest -is also the default home of "transient" storage, for more ephemeral content, -such as the mechanically generated extension documentation. Some mobile -operating systems are aggressive about wanting to delete ephemeral files -used by applications, so |-transient| can be used to divert these. +(b) The "external" nest is a place in which extensions to be shared among +multiple projects can be stored. (c) Every project has its own private nest, in the form of its associated Materials folder. For example, in |Jane Eyre.inform| is a project, then @@ -554,19 +550,6 @@ pathname *Supervisor::installed_files(void) { return Supervisor::default_internal_path(); } -@ The transient area can be used for build files for project files, where -there's no build directory provided by the project bundle. |-transient| sets -it, but otherwise the external nest is used. - -= -pathname *Supervisor::transient(void) { - RUN_ONLY_FROM_PHASE(TINKERING_INBUILD_PHASE) - if (shared_transient_resources == NULL) - if (shared_external_nest) - return shared_external_nest->location; - return shared_transient_resources; -} - @h The shared project. In any single run, each of the Inform tools concerns itself with a single Inform 7 program. This can be presented to it either in a project bundle diff --git a/inbuild/supervisor-module/Chapter 5/Project Services.w b/inbuild/supervisor-module/Chapter 5/Project Services.w index 1f4977d4e..a2c179fc8 100644 --- a/inbuild/supervisor-module/Chapter 5/Project Services.w +++ b/inbuild/supervisor-module/Chapter 5/Project Services.w @@ -209,9 +209,7 @@ pathname *Projects::path(inform_project *proj) { } pathname *Projects::build_path(inform_project *proj) { - if (proj->as_copy->location_if_path) - return Pathnames::down(Projects::path(proj), I"Build"); - return Supervisor::transient(); + return Pathnames::down(Projects::path(proj), I"Build"); } inbuild_nest *Projects::materials_nest(inform_project *proj) { diff --git a/inform7/Figures/help.txt b/inform7/Figures/help.txt index 9f6fca033..ea5d877a0 100644 --- a/inform7/Figures/help.txt +++ b/inform7/Figures/help.txt @@ -34,6 +34,7 @@ for testing and debugging inform7: -inbuild-verbose equivalent to -inbuild-verbosity=1 (default is -no-inbuild-verbose) -inbuild-verbosity=N how much inbuild should explain: lowest is 0 (default), highest is 3 -no-index don't produce an Index (default is -index) + -log-to-project X like -log X, but writing the debugging log into the project -no-problems don't produce (an HTML) Problems report page (default is -problems) -no-progress don't display progress percentages (default is -progress) -require-problem X return 0 unless exactly this Problem message is generated diff --git a/inform7/Figures/memory-diagnostics.txt b/inform7/Figures/memory-diagnostics.txt index bc0ff2fc3..deb4f3320 100644 --- a/inform7/Figures/memory-diagnostics.txt +++ b/inform7/Figures/memory-diagnostics.txt @@ -1,28 +1,28 @@ -Total memory consumption was 141479K = 138 MB +Total memory consumption was 139121K = 136 MB - ---- was used for 2123163 objects, in 374917 frames in 0 x 800K = 0K = 0 MB: + ---- was used for 2123157 objects, in 374911 frames in 0 x 800K = 0K = 0 MB: - 29.8% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes - 18.9% text_stream_array 4883 x 100 = 488300 objects, 27501056 bytes - 17.5% linked_list 45352 objects, 25397120 bytes - 9.9% inter_symbol_array 135 x 1024 = 138240 objects, 14381280 bytes - 9.6% inter_error_stash_array 107 x 1024 = 109568 objects, 14028128 bytes - 7.3% parse_node 133796 objects, 10703680 bytes - 5.2% verb_conjugation 164 objects, 7610912 bytes - 3.9% parse_node_annotation_array 357 x 500 = 178500 objects, 5723424 bytes + 30.3% inter_tree_node_array 60 x 8192 = 491520 objects, 43255680 bytes + 19.3% text_stream_array 4883 x 100 = 488300 objects, 27501056 bytes + 17.8% linked_list 45352 objects, 25397120 bytes + 10.0% inter_symbol_array 135 x 1024 = 138240 objects, 14381280 bytes + 9.8% inter_error_stash_array 107 x 1024 = 109568 objects, 14028128 bytes + 7.5% parse_node 133796 objects, 10703680 bytes + 5.3% verb_conjugation 164 objects, 7610912 bytes + 4.0% parse_node_annotation_array 357 x 500 = 178500 objects, 5723424 bytes 3.1% scan_directory 1092 objects, 4507776 bytes 2.4% pcalc_prop_array 26 x 1000 = 26000 objects, 3536832 bytes 2.2% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes - 1.8% kind_array 68 x 1000 = 68000 objects, 2722176 bytes - 1.4% inter_schema_token 14176 objects, 2154752 bytes + 1.9% kind_array 68 x 1000 = 68000 objects, 2722176 bytes + 1.5% inter_schema_token 14176 objects, 2154752 bytes 1.4% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes - 1.2% package_request 21344 objects, 1878272 bytes + 1.3% package_request 21344 objects, 1878272 bytes 1.2% vocabulary_entry_array 163 x 100 = 16300 objects, 1830816 bytes - 1.0% dict_entry_array 491 x 100 = 49100 objects, 1586912 bytes + 1.1% dict_entry_array 491 x 100 = 49100 objects, 1586912 bytes 1.0% inter_symbols_table 26921 objects, 1507576 bytes 1.0% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes - 0.9% i6_schema_array 24 x 100 = 2400 objects, 1440768 bytes - 0.8% inter_package 26921 objects, 1292208 bytes + 1.0% i6_schema_array 24 x 100 = 2400 objects, 1440768 bytes + 0.9% inter_package 26921 objects, 1292208 bytes 0.7% map_data 677 objects, 1137360 bytes 0.7% id_body 979 objects, 1119976 bytes 0.7% adjective_meaning 208 objects, 1030016 bytes @@ -31,14 +31,14 @@ Total memory consumption was 141479K = 138 MB 0.6% production 3985 objects, 924520 bytes 0.6% ptoken 8652 objects, 899808 bytes 0.6% grammatical_usage 3648 objects, 875520 bytes - 0.5% individual_form 2581 objects, 867216 bytes + 0.6% individual_form 2581 objects, 867216 bytes 0.4% unary_predicate_array 17 x 1000 = 17000 objects, 680544 bytes 0.3% local_variable_array 49 x 100 = 4900 objects, 471968 bytes 0.2% verb_usage 1148 objects, 394912 bytes 0.2% rule 478 objects, 374752 bytes 0.2% dictionary 7754 objects, 372192 bytes 0.2% verb_form 388 objects, 350752 bytes - 0.1% noun 2395 objects, 287400 bytes + 0.2% noun 2395 objects, 287400 bytes 0.1% compilation_subtask 3388 objects, 271040 bytes 0.1% inference_subject 672 objects, 263424 bytes 0.1% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes @@ -93,7 +93,7 @@ Total memory consumption was 141479K = 138 MB ---- verb_sense 407 objects, 29304 bytes ---- action_pattern_array 7 x 100 = 700 objects, 28224 bytes ---- filename 703 objects, 28120 bytes - ---- pathname 667 objects, 26680 bytes + ---- pathname 660 objects, 26400 bytes ---- shared_variable_set_array 6 x 100 = 600 objects, 24192 bytes ---- parse_node_tree 27 objects, 23544 bytes ---- property 148 objects, 22496 bytes @@ -142,7 +142,7 @@ Total memory consumption was 141479K = 138 MB ---- value_property_data 86 objects, 4816 bytes ---- compatibility_specification 100 objects, 4800 bytes ---- parsing_pp_data 96 objects, 4608 bytes - ---- command_line_switch 55 objects, 4400 bytes + ---- command_line_switch 56 objects, 4480 bytes ---- semver_range 42 objects, 4368 bytes ---- use_option 31 objects, 4216 bytes ---- parse_node_annotation_type 124 objects, 3968 bytes @@ -261,25 +261,25 @@ Total memory consumption was 141479K = 138 MB ---- tree_type 1 object, 40 bytes ---- I6_generation_data 1 object, 40 bytes -100.0% was used for memory not allocated for objects: +99.9% was used for memory not allocated for objects: - 62.8% text stream storage 91010388 bytes in 508728 claims - 3.7% dictionary storage 5480960 bytes in 7754 claims + 62.1% text stream storage 88595684 bytes in 508381 claims + 3.8% dictionary storage 5480960 bytes in 7754 claims ---- sorting 2624 bytes in 531 claims - 4.9% source text 7200000 bytes in 3 claims - 7.4% source text details 10800000 bytes in 2 claims + 5.0% source text 7200000 bytes in 3 claims + 7.5% source text details 10800000 bytes in 2 claims 0.1% documentation fragments 262144 bytes in 1 claim ---- linguistic stock array 81920 bytes in 2 claims ---- small word set array 105600 bytes in 22 claims - 3.2% inter symbols storage 4704736 bytes in 28298 claims - 11.5% inter bytecode storage 16758228 bytes in 15 claims - 4.2% inter links storage 6222976 bytes in 11 claims + 3.3% inter symbols storage 4704736 bytes in 28298 claims + 11.7% inter bytecode storage 16758228 bytes in 15 claims + 4.3% inter links storage 6222976 bytes in 11 claims 0.1% inter tree location list storage 191232 bytes in 32 claims - 1.1% instance-of-kind counting 1731856 bytes in 1 claim + 1.2% instance-of-kind counting 1731856 bytes in 1 claim ---- compilation workspace for objects 21936 bytes in 25 claims ---- lists for type-checking invocations 16000 bytes in 1 claim ---- code generation workspace for objects 3488 bytes in 19 claims 0.1% emitter array storage 281184 bytes in 2006 claims --134.-6% was overhead - -195021168 bytes = -190450K = -185 MB +-136.-8% was overhead - -195020968 bytes = -190450K = -185 MB diff --git a/inform7/Figures/timings-diagnostics.txt b/inform7/Figures/timings-diagnostics.txt index 333d52b91..481013d91 100644 --- a/inform7/Figures/timings-diagnostics.txt +++ b/inform7/Figures/timings-diagnostics.txt @@ -1,11 +1,11 @@ 100.0% in inform7 run - 67.0% in compilation to Inter - 45.0% in //Sequence::undertake_queued_tasks// - 4.5% in //MajorNodes::pre_pass// + 67.4% in compilation to Inter + 45.9% in //Sequence::undertake_queued_tasks// + 4.2% in //MajorNodes::pre_pass// 3.4% in //MajorNodes::pass_1// - 1.8% in //ImperativeDefinitions::assess_all// - 1.8% in //RTPhrasebook::compile_entries// + 1.9% in //ImperativeDefinitions::assess_all// 1.5% in //RTKindConstructors::compile// + 1.5% in //RTPhrasebook::compile_entries// 1.1% in //Sequence::lint_inter// 0.3% in //CompletionModule::compile// 0.3% in //ImperativeDefinitions::compile_first_block// @@ -14,17 +14,16 @@ 0.3% in //Sequence::undertake_queued_tasks// 0.3% in //Sequence::undertake_queued_tasks// 0.3% in //World::stage_V// - 4.9% not specifically accounted for - 28.7% in running Inter pipeline - 9.8% in step 14/15: generate inform6 -> auto.inf - 7.1% in step 5/15: load-binary-kits - 6.0% in step 6/15: make-synoptic-module - 2.2% in step 9/15: make-identifiers-unique - 0.3% in step 11/15: eliminate-redundant-labels + 5.0% not specifically accounted for + 27.9% in running Inter pipeline + 9.5% in step 14/15: generate inform6 -> auto.inf + 6.8% in step 5/15: load-binary-kits + 5.7% in step 6/15: make-synoptic-module + 1.9% in step 9/15: make-identifiers-unique 0.3% in step 12/15: eliminate-redundant-operations 0.3% in step 4/15: compile-splats 0.3% in step 7/15: shorten-wiring 0.3% in step 8/15: detect-indirect-calls - 1.5% not specifically accounted for - 3.7% in supervisor - 0.4% not specifically accounted for + 2.3% not specifically accounted for + 3.8% in supervisor + 0.8% not specifically accounted for diff --git a/inform7/Internal/Delia/Main.delia b/inform7/Internal/Delia/Main.delia index f2d43c771..952408cb4 100644 --- a/inform7/Internal/Delia/Main.delia +++ b/inform7/Internal/Delia/Main.delia @@ -10,8 +10,7 @@ default: $SCRIPT = default: $LANGUAGE = Inform default: $COMPATIBLEWITH = all -! (1) Set $FORMAT to the full description of the language we will transpile -! to, and extract the source text for the case, writing it to the given file: +! (1) Set $FORMAT to the full description of the language we will transpile to. if compatible: inform6/32 `$COMPATIBLEWITH default: $FOR = Glulx @@ -48,6 +47,8 @@ else fail: `$ERROR endif +! (2) Extract the source text for the case, writing it to the given file. + set: $SOURCE = $WORK/Example.inform/Source/story.ni if compatible: $FORMAT Glulx extract: $SOURCE G @@ -56,7 +57,7 @@ else endif show: source $SOURCE -! (2) Almost all tests produce actual textual output, which we put in $A, +! (3) Almost all tests produce actual textual output, which we put in $A, ! and ideal or blessed textual output, which is in $I: the test will end up ! by comparing $A with $I$. @@ -64,17 +65,9 @@ set: $A = $$workspace/Actuals/$CASE.txt set: $I = $PATH/$CASE--I.txt show: ideal $I -! (3) Make sure the "transient area" exists and is completely empty. - -ifndef: $TRANSIENTAREA - set: $TRANSIENTAREA = $WORK/Transient -endif -mkdir: $TRANSIENTAREA -step: find $TRANSIENTAREA -mindepth 1 -delete - ! (4) Work out the command-line options to pass to inform7. -set: $I7OPTIONS = -format=$FORMAT -no-progress -no-resource-checking -fixtime -rng -sigils -transient $TRANSIENTAREA -internal $INTERNAL +set: $I7OPTIONS = -format=$FORMAT -no-progress -no-resource-checking -fixtime -rng -sigils -internal $INTERNAL ifdef: $EXTERNAL set: $I7OPTIONS = `$I7OPTIONS -external $EXTERNAL else diff --git a/inform7/Manual/Command-Line Usage.w b/inform7/Manual/Command-Line Usage.w index ec2693508..12d664ebf 100644 --- a/inform7/Manual/Command-Line Usage.w +++ b/inform7/Manual/Command-Line Usage.w @@ -140,19 +140,6 @@ to compile) then source-reference links will be to the right examples. For ordinary, non-Extension, projects, this switch should not be used. -@ When the app installs a new extension (in the external area), or is run -for the first time, it should call Inform 7 to perform a "census" of the -available extensions. The compiler then looks through its internal and -external areas, and creates suitable HTML pages showing what it finds, -which it stores in a writeable area of the file system called the "transient" -directory. - -The usage for this is: -= (text as ConsoleText) - $ inform7/Tangled/inform7 -internal I -external E -transient T -census -= -(The caller has the obligation to provide the Transient directory.) - @h Using Inform 7 without projects. To users of Inform UI apps, projects seem essential. On Mac OS, they are sealed boxes, looking like files in the Finder, but on all platforms they diff --git a/inform7/core-module/Chapter 1/What To Compile.w b/inform7/core-module/Chapter 1/What To Compile.w index 49328e61c..152624824 100644 --- a/inform7/core-module/Chapter 1/What To Compile.w +++ b/inform7/core-module/Chapter 1/What To Compile.w @@ -283,8 +283,8 @@ but is openly accessible even on MacOS. If Inform is working on a single source text file, not a bundle, then the project will be the current working directory, but now the build folder will -be the Inbuild transient area, and materials (if present) will again be -alongside. +be the folder |Build| in the same directory as the source file, and materials +(if present) will again be alongside. To begin: what's in the project area? |story.ni| and |auto.inf|, neither one very helpfully named, are defined in Inbuild rather than here: these