1 :Info: mbuild: mb:  2022-09-13  mbuild, mb
   2 
   3 Syntax as a command:  mb {BUILD_SCRIPT} {-control_args}
   4 
   5 
   6 Function: A subsystem of requests which build and prepare to install
   7 all original-content segments in a build directory.  Original-content
   8 segments include: program source files, include files, info segments,
   9 bind files, source archive(s) for a new bound segment, etc.
  10 
  11 The build directory contains a build script segment giving details of
  12 the build.  For information about contents of the build script, type:
  13    help build_script.gi
  14 
  15 
  16 Arguments:
  17 BUILD_SCRIPT
  18    pathname of the build script segment describing the changes to be
  19    built.  A suffix of .mb is assumed if not given in the final
  20    entryname.  If the directory part of this pathname does not
  21    reference the working directory, then the working directory is
  22    changed to the specified directory as the mbuild subsystem opens.
  23    mbuild will prompt to create this build script if it is not found.
  24    The star convention is allowed.  (default: search for **.mb in the
  25    working directory: if one match is found, that is the build script;
  26    otherwise the user is asked to re-invoke mbuild giving a specific
  27    build script pathname.)
  28 
  29 
  30 Control arguments (phase):
  31    mbuild tracks a "phase of building" which specifies whether the
  32    user is "developing" a set of segments being changed/added, or
  33    "auditing" those changes, or "installing" them.  This phase is
  34    stored in the  Information --  section of the build script (.mb)
  35    segment.  One of the following control_args may be given to change
  36    this stored phase setting.
  37 -developing, -dev
  38    changes are still being added to the build.  (default if no build
  39    script segment exists in the build directory.)
  40 -auditing, -aud
  41    changes are frozen (mostly) and are now being audited.
  42 
  43 
  44 -installing, -inst
  45    fully-audited changes are now being installed in the Multics
  46    Libraries.  This phase should be used only for installations into
  47    the Multics Libraries directories.  One or more Approve_ID values
  48    must be set, along with an Install_ID value.  These attributes are
  49    appended to the command:  update_seg -log
  50    which appears in the install exec_com produced by the install_ec
  51    request.  The line appended to the -log input has the format:
  52     (MCR10126, MR12.8-1516)
  53 
  54 
  55 Control arguments (initial requests):
  56 -scan_read, -scrd
  57    scans the installation directory looking for original-content
  58    segments before entering the mbuild request loop.  If a build
  59    script segment is found, asks the user if it should be read.
  60    (default for developing phase)
  61 -read_analyze, -rdaz
  62    reads an existing build script segment and analyzes segments
  63    listed in its  Changes --  section to determine exact contents
  64    build.  Original content segments not referenced in the build
  65    script are ignored.  No scan of the directory is performed.
  66    (default for auditing/installing phases)
  67 
  68 
  69 -scan, -sc
  70    perform a scan of the installation directory before entering the
  71    request loop.  Do not ask about, or actually read, any build script
  72    Changes --  section.
  73 -no_scan, -nsc
  74    omit the scan request before entering the mbuild request loop.
  75 
  76 
  77 -request STR, -rq STR
  78    executes STR as an mbuild request line before entering the
  79    request loop.
  80 -request_loop, -rql
  81    enters the mbuild request loop. (default)
  82 -no_request_loop, -nrql
  83    does not enter the request loop.
  84 
  85 
  86 Control arguments (setup):
  87 -approve APPROVE_ID,
  88 -apv APPROVE_ID
  89    adds an MCR number for this build directory.  If only one value is
  90    associated with this build, that value will be used if the
  91    APPROVE_ID is omitted from the request:
  92       hcom add_field -approve APPROVE_ID
  93    The operand must be 24 characters or less, and must begin with one
  94    of the following prefixes:  MCR  MECR  PBF
  95    acronyms of:  Multics Change Request
  96                  Multics Emergency Change Request
  97                  Post Bug Fix
  98 
  99 
 100 -install INSTALL_ID,
 101 -in INSTALL_ID
 102    associates a Multics Release INSTALL_ID (e.g., MR12.8-1012) with
 103    the build script.  That value will be used if the INSTALL_ID is
 104    omitted from the request:  hcom add_field -install INSTALL_ID
 105    The operand must be 20 characters or less, and must begin with the
 106    prefix MR, an acronym for:  Multics Release.
 107 
 108 -set_log_dir DIRNAME, -sld DIRNAME
 109    sets the log directory used by the update_seg initiate command.
 110    (default is to use the first directory returned by active function:
 111    [lds pn *.log])
 112 
 113 
 114 -abbrev, -ab
 115    enables abbreviation expansion of request lines.
 116 -profile path, -pf path
 117    specifies the pathname of the profile to use for abbreviation
 118    expansion.  The suffix "profile" is added if necessary.  This
 119    control argument implies -abbrev.
 120 -no_abbrev, -nab
 121    does not enable abbreviation expansion of request lines.  (default)
 122 
 123 
 124 -prompt STR, -pmt STR
 125    sets the request loop prompt to STR.  The default is:
 126          ^/mbuild^[ (^d)^]:^2x
 127 -no_prompt, -npmt
 128    suppresses the prompt for request lines in the request loop.
 129 
 130 
 131 :[Info]: summary.topic: summary: 2022-09-01  mbuild Requests
 132 
 133 List of requests:
 134    For details of any request, type:  help REQUEST_NAME
 135 list, ls
 136    List files in the working directory (the installation directory).
 137 scan, sc
 138    Scan the working directory for segments to build.
 139 read, rd
 140    Read a description of the build operation from a build script
 141    segment.
 142 analyze, az
 143    Analyze information gathered by scan or read requests.
 144 progress, pg
 145    Report progress toward completing build and install tasks.  List
 146    requests that are still needed.
 147 print, pr, p
 148    Describe the build operation, either before or after an analyze
 149    request.  Print other mbuild settings.  Display mbuild's threaded
 150    lists of segments being installed.
 151 set
 152    Sets target library or library.directory for a given segment
 153    being changed; or sets values for other sections of the build
 154    script.
 155 add
 156    Adds lines to Description and Status; adds values to the MCRs,
 157    developers, auditors, or installers arrays of build script.
 158 save, sv
 159    Save information about the build operation into a build script
 160    segment.
 161 compile, comp
 162    Compile source segments to create their derived Unbound_obj
 163    segments.  Add extra names to unbound objects.
 164 archive_prep, arch
 165    Update bound segment source/object archives; bind object archives.
 166 install_ec, inst
 167    Create a Build_exec_com file to install segments into their target
 168    library.
 169 clean, cl
 170    Remove any derived segments found/created by prior requests.
 171 
 172 
 173 compare, cmp
 174    Compare original and replacement source, include, info, or bindfile
 175    segments.
 176 history, hcom
 177    Apply history_comment command to source, include, info, or bindfile
 178    segments.
 179 verify, vi
 180    Check format of info segments in the installation directory.
 181 xref
 182    Display library source files that reference include segments in the
 183    installation directory.
 184 lib_names, libs
 185    Display library paths with preferred library name.
 186 library_descriptor, lds
 187    Display information about the multics_libraries_ descriptor.
 188 library_pathname, lpn
 189    List pathnames in the library which match a given starname.
 190 seg_type, seg
 191    Describe mbuild build/install details or paradigm for a given
 192    segment.
 193 paradigm, pdm
 194    Print information about an mbuild build/install paradigm.
 195 
 196 
 197 help, h
 198    Obtain detailed information on the subsystem.
 199 .
 200    Identify the subsystem.
 201 ?
 202    Produce a list of the most commonly used requests.
 203 
 204 
 205 :[Info]: scan: sc:  2020-01-25  scan, sc
 206 
 207 Syntax:  scan {-control_args}
 208          sc   {-control_args}
 209 
 210 
 211 Function: scans the working directory to identify segments to build and
 212 install.
 213 
 214 
 215 Control arguments:
 216 -query, -qy
 217    for the first scan in an mbuild invocation, check for a
 218    build script segment in the installation directory.  If one is
 219    found, ask whether this file should be read following the scan
 220    operation. (default)
 221 -no_query, -nqy
 222    do not ask about, or actually read, any build script segment.
 223 
 224 
 225 :[Info]: read: rd:  2022-08-06  read, rd
 226 
 227 Syntax:  rd   {-control_args}
 228 
 229 
 230 Function: reads information about the build operation from a build
 231 script segment.  If reading the  Changes --  section of the script,
 232 data from those Build Script Language statements replaces segment
 233 build details from any earlier scan or read request.  Run another
 234 analyze request to determine operations needed for the build.
 235 
 236 
 237 Control arguments (sections):
 238    Select zero, one or more sections to read from the build script.
 239    By default, all sections are read.
 240 -description, -desc
 241    Read the  Description --  section of the build script.  Segment
 242    information obtained by earlier scan or read requests is preserved.
 243 -changes, -change, -chg
 244    Read the  Changes --  section of the build script.  Segment build
 245    details from any earlier scan or read request are replaced by
 246    statements in the current Changes section.  Run another analyze
 247    request to determine operations needed for the build.
 248 
 249 
 250 -information, -info
 251    Read the  Information --  section of the build script.  Segment
 252    information obtained by earlier scan or read requests is preserved.
 253 -status, -st
 254    Read the  Status --  section of the build script.  Segment
 255    information obtained by earlier scan or read requests is preserved.
 256 
 257 
 258 -all, -a
 259    Read the entire build script.  Segment information from an earlier
 260    scan or read request is replaced by segment information read from
 261    the build script.  This replacement data must then be analyzed.
 262    (default)
 263 -no_description, -ndesc
 264    Do not read the  Description --  section of the script.
 265 -no_changes, -no_change, -nchg
 266    Do not read the  Changes --  section of the script.
 267 -no_information, -ninfo
 268    Do not read the  Information --  section of the script.
 269 -no_status, -nst
 270    Do not read the  Status --  section of the script.
 271 
 272 
 273 Control arguments (display):
 274 -print, -pr
 275    Print segment information obtained by this read request. (default)
 276 -no_print, -npr
 277    Do not print data read by this request.
 278 -brief, -bf
 279    Do not report an error if the build script segment does not exist.
 280 
 281 
 282 -debug LEVEL, -db LEVEL
 283    LEVEL=0: disable debugging when reading the script. (default)
 284    LEVEL=1: display the matching reduction as input tokens in the
 285             script are matched.
 286    LEVEL=2: display all input tokens before parsing begins; then
 287             perform level 1 debugging.
 288 
 289 
 290 :[Info]: analyze: az:  2022-08-24  analyze, az
 291 
 292 Syntax:  analyze
 293          az
 294 
 295 
 296 Function: analyzes information gathered by scan or read requests.
 297 Knowledge of how programs and documentation are stored in libraries
 298 like the Multics Libraries reshapes mbuild's view of segments in the
 299 install directory.  Analysis is saved in  Changes --  section of the
 300 build script segment.
 301 
 302 
 303 Control arguments:
 304 -clean, -cl
 305    Run the clean request if analysis completes successfully.  The
 306    installer is asked whether to delete the derived-content segments
 307    found by the analysis. (default)
 308 -no_clean, -ncl
 309    Omit the clean request when analysis completes successfully.
 310 -progress, -pg
 311    Run the progress request when analysis completes successfully.
 312    (default)
 313 -no_progress, -npg
 314    Omit the progress request when analysis completes successfully.
 315 
 316 
 317 :[Info]: print: pr: p:  2022-10-13  print, pr, p
 318 
 319 Syntax:  p {-control_args}
 320 
 321 
 322 Function: prints information about a build operation, before or after
 323 an analyze request.  This information may come from sections of the
 324 build script segment, or from analysis of the Build Language
 325 statements, etc.
 326 
 327 
 328 Control arguments (build script sections):
 329    One or more of the following may be given to select data to be
 330    printed about the current build.
 331 -script, -scr
 332    print information contained in every section of the build script
 333    segment.
 334 -directory, -dir
 335    print the current build directory pathname.
 336 -description, -desc
 337    print the current description added by the installer for this
 338    build directory.  The description is specified using the set
 339    request, lines may be appended using the add request, or by editing
 340    the Build Script segment to add/change the  Description --  section
 341    at the top of this segment.
 342 
 343 
 344 -changes, -change, -chg
 345    print from mbuild's internal data all Build Script Language
 346    statements describing this build.  This information may include
 347    guesses made by the scan and analyze requests.  If an analyze
 348    request has not succeeded since the last scan or read request,
 349    the displayed statement may not appear as yet in the build script.
 350 -information, -info
 351    print data items in the  Information --  section of the build
 352    script segment.
 353 -status, -st
 354    print the current data describing status of build operations.  This
 355    data may be specified using the set request, lines may be appended
 356    using the add request, or by editing the Build Script segment to
 357    change the  Status --  section at the top of this segment.
 358 
 359 
 360 Control arguments (other types of data):
 361    To display other kinds of data, only one of the following may be
 362    given.
 363 -Seg STARNAME, -seg STARNAME
 364    print all information about a given original-content segment in the
 365    build directory.
 366 -list {LIST_NAME}, -ls {LIST_NAME},
 367 -thread {LIST_NAME}, -th {LIST_NAME}
 368    print all entries on one of the threaded lists maintained by mbuild.
 369    LIST_NAME may be "all" to display items on all threaded lists; or
 370    one of the IDs given in "List of thread selectors" below.  "all" is
 371    the default if no LIST_NAME is given.
 372 
 373 
 374 -phase
 375    print the current phase of the build process, as recorded in the
 376    build script  Information --  section.  This phase affects the
 377    default requests performed when mbuild is first invoked.  For
 378    details, type:  ..help mbuild -section "initial requests"
 379 -log_dir, -ld
 380    print the current log directory, used in the update_seg initiate
 381    request.  This directory contains segments describing the
 382    installation: Installations.log, Installations.info
 383 
 384 
 385 -new
 386    print original-content segments found by a scan of the install
 387    directory that are not mentioned in the build script.  When a
 388    read request loads the build script into mbuild, it reports this
 389    same possible omission of segments; print -new allows the user
 390    to re-display this data.
 391 -unknown, -unk
 392    print original-content segments found by a scan of the install
 393    directory that have an UNKNOWN library designation.
 394 -save_format, -save
 395    print build data as it would appear in the build script segment.
 396 
 397 
 398 Control arguments (build statement format):
 399 -scan, -sc
 400    print data gathered by most recent scan of the install directory,
 401    or read from the build script segment. (default if an analyze
 402    request has not been issued.)
 403 -analyze, -az
 404    print build data reshaped by an analyze request.  (default
 405    after an analyze request is issued.)
 406 
 407 
 408 Control arguments (build statement details):
 409    Arguments to select information to be displayed for each structure.
 410    Structure varieties include: Seg() representing an actual segment;
 411    and BOUNDOBJ, UNBOUNDOBJ, and COMPILE which manage relationships
 412    between segments.
 413 -all, -a
 414    displays all possible information for each structure type.
 415 -structure
 416    displays type of structure: Seg, BOUNDOBJ, UNBOUNDOBJ, or COMPILE,
 417    preceding the segment's name.  If both -structure and -type are
 418    given, the structure and type are shown in combination:
 419    Seg(Include).  If neither are given, only the segment name is
 420    displayed.
 421 
 422 
 423 -type, -tp
 424    displays the segment type based upon entryname suffix.  The
 425    segment's name follows this type value.  Possible values are
 426    returned by the request:  seg_type -type
 427 -library, -lb
 428    display the target library.directory into which the segment will be
 429    installed.
 430 -header, -he
 431    displays the operation (ADD, REPLACE, DELETE, or UPDATE); and
 432    compiler used to produce derived content from the source segment.
 433 -pointer, -ptr
 434    displays type/name of other structures pointed to by the displayed
 435    structure.
 436 
 437 
 438 -archive, -ac
 439    displays the target archive name in which the segment will be
 440    installed.  This is meaningful for source or object segments which
 441    are components of a bound segment archive.
 442 -thread_base, -Tb
 443    displays information about threaded lists anchored in the structure.
 444    For example, a Seg(source_arch) anchors a list of Seg(source)
 445    components targeted for updating in that archive.
 446 -thread_data, -Td
 447    displays information about threaded lists in which the structure is
 448    a member.
 449 -name, -nm
 450    display names to be added to, or deleted from, the segment as it is
 451    installed in the library.
 452 
 453 
 454 List of negative control arguments:
 455    For some types of information, extra information is displayed by
 456    default.  The following control arguments turn off display of
 457    unwanted data.
 458 -no_structure
 459    stops output of structure information if it is displayed by default,
 460    or if -all was given earlier in request line.
 461 -no_type, -ntp
 462    stops output of type information if it is displayed by default, or
 463    if -all was given earlier in request line.
 464 -no_library, -nlb
 465    stops output of library information if it is displayed by default,
 466    or if -all was given earlier in request line.
 467 
 468 
 469 -no_header,  -nhe
 470    stops output of header information if it is displayed by default, or
 471    if -all was given earlier in request line.
 472 -no_archive, -nac
 473    stops output of archive information if it is displayed by default,
 474    or if -all was given earlier in request line.
 475 -no_pointer, -nptr
 476    stops output of pointer information if it is displayed by default,
 477    or if -all was given earlier in request line.
 478 -no_thread_base, -nTb
 479    stops output of thread anchor information if it is displayed by
 480    default, or if -all was given earlier in request line.
 481 
 482 
 483 -no_thread_data, -nTd
 484    stops output of thread membership information if it is displayed by
 485    default, or if -all was given earlier in request line.
 486 -no_name, -nnm
 487    stops output of names added/removed information if it is displayed
 488    by default, or if -all was given earlier in request line.
 489 
 490 
 491 List of thread selectors:
 492 all
 493    Display structures on all populated threads.
 494 BOUNDOBJ, BND
 495    All BOUNDOBJ structures.
 496 COMPILE, COMP
 497    All COMPILE structures.
 498 UNBOUNDOBJ, UNBND
 499    All UNBOUNDOBJ structures.
 500 Seg, seg
 501    All Seg structures.
 502 
 503 
 504 Unbound_obj, Unb
 505    All Seg(Unbound_obj) structures following the Unbound_obj paradigm.
 506 Bound_obj, Bnd
 507    All Seg(Bound_obj) structures following the Bound_obj paradigm.
 508 bindfile, bind
 509    All Seg(bindfile) structures following the bindfile paradigm.
 510 object_arch, oArch
 511    All Seg(object_arch) structures following the object_arch paradigm.
 512 source_arch, sArch
 513    All Seg(source_arch) structures following the source_arch paradigm.
 514 source, src
 515    All Seg(source) structures following the source paradigm.  This
 516    excludes sources derived from 1st step of a 2-step compile (sources
 517    on the INTERMEDIATE thread).
 518 
 519 
 520 target_only, target
 521    All Seg(...) structures following the target_only paradigm.
 522 listing, list
 523    All Seg(listing) structures following the listing paradigm.
 524 mbuild_support, support, sup
 525    All Seg(Build_xxx) structures following the mbuild_support paradigm.
 526 object_x_only, o.x
 527    All Seg(...) structures following the object_x_only paradigm.
 528 scan, sc
 529    Original-content segments found in install dir before building.
 530 INTERMEDIATE, inter
 531    Some Seg(source) structures that aren't installed because their
 532    content is derived from other Seg(source) files.
 533 
 534 
 535 :[Info]: progress: pg:  2019-07-30  progress, pg
 536 
 537 Syntax:  progress
 538          pg
 539 
 540 
 541 Function: reports progress toward completing build and install tasks.
 542 
 543 
 544 :[Info]: set:  2022-10-23  set
 545 
 546 Syntax:  set -control_args
 547 
 548 
 549 Function: sets the target library or library.directory for a given
 550 segment in the  Changes --  section of the build script; or sets
 551 values for other sections of the build script.
 552 
 553 The build script includes four sections:
 554  Description --
 555    Free-form text giving an hcom-style summary of major changes.
 556  Changes --
 557    Build Script Language statements describing the segments being
 558    changed by the build.
 559  Information --
 560    Build phase and key identifiers associated with the build script.
 561  Status --
 562    Free-form text describing current status of various steps of the
 563    build operation.
 564 
 565 
 566 This request sets (completely replaces) current values with new
 567 information.  To append new lines to the free-form sections, or
 568 additional APPROVE_IDs or USER_IDs, use the add request.  For details,
 569 type:    help add
 570 
 571 
 572 To change the library descriptor named in the  Information --
 573 section, use the mbuild request:  lds set DESCRIPTOR_NAME
 574 
 575 
 576 Control arguments (build script information section):
 577    Each set request must give only one of the following -ctl_args,
 578    or one of the -ctl_args from the other Control arguments sections.
 579 -phase PHASE_NAME
 580    sets the current phase of operation to one of the following values:
 581       developing
 582          changes are still being added to the build.
 583       auditing
 584          changes are frozen (mostly) and are now being audited.
 585       installing
 586          fully-audited changes are now being installed.  This phase
 587          can only be set if an INSTALL_ID and one or more APPROVE_IDs
 588          has been set first.  In "installing" phase, these ID values
 589          are appended to the update_seg -log information when the
 590          changes are installed.
 591 
 592 
 593 -approve APPROVE_IDs,
 594 -apv APPROVE_IDs
 595    associates one or more APPROVE_IDs (e.g., MCR10019) with the build
 596    script.  If several APPROVE_IDs are given, all will be listed in
 597    the build script.  And if only one APPROVE_ID is given, that value
 598    will be used if no APPROVE_ID is given in the request:
 599      hcom add_field -apv APPROVE_ID
 600    or any other hcom operation accepting the -approve control
 601    argument.  The operand must be 24 characters or less, and must
 602    begin with one of the following prefixes:  MCR  MECR  PBF
 603    acronyms of    Multics Change Request
 604                   Multics Emergency Change Request
 605                   Post Bug Fix
 606 
 607 
 608 -install INSTALL_ID,
 609 -in INSTALL_ID
 610    associates a Multics Release INSTALL_ID (e.g., MR12.8-1012) with
 611    the build script.  That value will be used if no INSTALL_ID is
 612    given in the request:  hcom add_field -install INSTALL_ID
 613    or any other hcom operation accepting the -install control
 614    argument.  The operand must be 20 characters or less, and must
 615    begin with the prefix MR, an acronym for:  Multics Release.
 616 
 617 
 618 -log_dir DIRNAME, -ld DIRNAME
 619    sets the log directory used by the update_seg initiate command.  If
 620    no log directory has been set by "mbuild -set_log_dir DIR" or the
 621    request "set -log_dir DIR", the install_ec request will use the
 622    directory selected by library descriptor matching -library *.log
 623    if one is defined.
 624 
 625 
 626 -developer USER_IDs,
 627 -dev USER_IDs
 628    one or more PERSON_ID.PROJECT_ID values identifying users
 629    developing the changes.
 630 -auditor USER_IDs,
 631 -aud USER_IDs
 632    one or more PERSON_ID.PROJECT_ID values identifying users
 633    auditing the changes.
 634 -installer USER_IDs,
 635 -inst USER_IDs
 636    one or more PERSON_ID.PROJECT_ID values identifying users
 637    installing the changes.
 638 
 639 
 640 Control arguments (build script other sections):
 641    Each set request must give only one of the following -ctl_args,
 642    or one of the -ctl_args from the other Control arguments sections.
 643 -description, -desc
 644    prompts for a new description of the build operation.  The
 645    description text ends with a line containing only a period (.)
 646    character.  The new text is saved in the  Description --  section of
 647    the build script to preserve its value across mbuild invocations.
 648    Another way to set or revise the description is by editing the
 649    build script, then issue the request:  read -desc
 650 
 651 
 652 -status, -st
 653    prompts for a new status of the build process.  The text entered
 654    ends with a line containing only a period (.) character.
 655    The new text is saved in the  Status --  section of the build
 656    script to preserve its value across mbuild invocations.
 657    Another way to set or revise the status text is by editing the
 658    build script, then issue the request:  read -status
 659 
 660 
 661 Control arguments (build script changes section):
 662    Each set request must give both of the following -ctl_args,
 663    and may not include -ctl_args from the other Control arguments
 664    sections.  Name a segment using the -seg control_arg followed by a
 665    -library control_arg giving a new value.
 666 -Seg SEG_NAME -control_arg,
 667 -seg SEG_NAME -control_arg
 668    selects a segment to modify.  The star convention may be used
 669    to select several segments to modify.  The -control_arg specifies
 670    which attribute of the Seg structure to modify.  Only the following
 671    attribute may be changed.
 672 
 673 -library LIBRARY, -lb LIBRARY
 674    gives a new value for the Seg().library attribute.  Use one of the
 675    formats: LIB_NAME.DIR_NAME  or  LIB_NAME  or  DIR_NAME
 676 
 677 
 678 List of preferred library names:
 679    LIB_NAME.DIR_NAME combinations that are short and readily
 680    identifiable.  Note that hard.i and mcs.i reference a directory
 681    named info, but it contains hardcore/communication configuration
 682    files and maps, not info segments.  To see directories named by
 683    these libraries, enter the request: libs
 684 
 685 
 686 :[Info]: add:  2022-10-23  add
 687 
 688 Syntax:  add -control_arg
 689 
 690 
 691 Function: adds lines to the  Description --  and  Status --  sections
 692 of the build script; or adds values to the Approve_IDs, Developers,
 693 Auditors, or Installers attributes of the  Information --  section of
 694 the build script segment.
 695 
 696 The build script includes four sections:
 697  Description --
 698    Free-form text giving an hcom-style summary of major changes.
 699 
 700 
 701  Changes --
 702    Build Script Language statements describing the segments being
 703    changed by the build.
 704 
 705 
 706  Information --
 707    Build phase and key identifiers associated with the build script.
 708 
 709 
 710  Status --
 711    Free-form text describing current status of various steps of the
 712    build operation.
 713 
 714 
 715 To completely replace any of the free-form sections or arrays, or
 716 to change the values of scalar elements in the  Information --
 717 section, use the set request.  For details, type:  help set
 718 
 719 
 720 Control arguments (build script information section):
 721    Each add request must give only one of the following -ctl_args,
 722    or one of the -ctl_args from the other Control arguments sections.
 723 
 724 
 725 -approve APPROVE_IDs,
 726 -apv APPROVE_IDs
 727    adds one or more APPROVE_IDs (e.g., MCR10019) to the
 728    Information --  section of the build script.  If several
 729    APPROVE_IDs are given, all will be listed.  And if only one
 730    APPROVE_ID is listed in the build script, that value will be used
 731    if no APPROVE_ID is given in the request:
 732      hcom add_field -apv {APPROVE_ID}
 733    The operand must be 24 characters or less, and must begin with one
 734    of the following prefixes:  MCR  MECR  PBF
 735    acronyms of:    Multics Change Request
 736                    Multics Emergency Change Request
 737                    Post Bug Fix
 738 
 739 
 740 -developer USER_IDs,
 741 -dev USER_IDs
 742    one or more PERSON_ID.PROJECT_ID values identifying users
 743    developing the changes.  These will be added to any existing
 744    user_IDs if they are not already present in the array.
 745 
 746 
 747 -auditor USER_IDs,
 748 -aud USER_IDs
 749    one or more PERSON_ID.PROJECT_ID values identifying users
 750    auditing the changes.  These will be added to any existing
 751    user_IDs if they are not already present in the array.
 752 -installer USER_IDs,
 753 -inst USER_IDs
 754    one or more PERSON_ID.PROJECT_ID values identifying users
 755    installing the changes.  These will be added to any existing
 756    user_IDs if they are not already present in the array.
 757 
 758 
 759 Control arguments (build script other sections):
 760    Add lines to a section by giving only one of these -ctl_args.
 761 -description, -desc
 762    prompts for new lines to be appended to the Description --  section
 763    of the build script.  The new lines end with a line containing only
 764    a period (.) character.  Another way to add or revise the
 765    description is by editing the build script segment.
 766 -status, -st
 767    prompts for new lines to be appended to the  Status --  section of
 768    the build script.  The new lines end with a line containing only a
 769    period (.) character.  Another way to add or revise the status text
 770    is by editing the build script segment.
 771 
 772 
 773 :[Info]: save: sv:  2022-08-24  save, sv
 774 
 775 Syntax:  save
 776          sv
 777 
 778 
 779 Function: save mbuild's information about the current build operation
 780 to the build script segment.  All sections are updated from mbuild's
 781 internal data.  If statements from the  Changes --  section have not
 782 been analyzed yet, the  Changes --  section from the existing build
 783 script is preserved.
 784 
 785 
 786 :[Info]: compare: cmp:  2020-01-26  compare, cmp
 787 
 788 Syntax:  compare {SEG_NAME} {-cpa_control_args}
 789          cmp     {SEG_NAME} {-cpa_control_args}
 790          compare {SEG_NAME} {-brief}
 791          cmp     {SEG_NAME} {-brief}
 792 
 793 
 794 Function: compares original source, include, info, and bindfile
 795 segments with replacement segments being installed.
 796 
 797 
 798 Arguments:
 799 SEG_NAME
 800    names the segment(s) to compare.  The name includes the language
 801    suffix (e.g., source.pl1).  If not given, all source, include,
 802    info, and bindfile segments being REPLACEd are compared.  The
 803    star convention may be used to select several segments.
 804 
 805 
 806 Control arguments:
 807    Any control argument accepted by compare_ascii (cpa) command may
 808    be given, except -original and -no_original.  For segments being
 809    REPLACEd, the compare request automatically adds:
 810       -original LIBRARY_PATH
 811    giving path in the library of the segment being replaced.
 812 
 813 -brief, -bf
 814    use the Multics compare active function to identify replaced
 815    segments whose contents differs from their corresponding library
 816    version.  Only the file name and corresponding library path is
 817    displayed.
 818 
 819 
 820 :[Info]: history: hcom:  2022-09-04  history, hcom
 821 
 822 Syntax:
 823    hcom    HCOM_OPERATION {SEG_NAME} {HCOM_ARGS_AND_CONTROL_ARGS}
 824 
 825 
 826 Syntax as an active request:
 827    [hcom    HCOM_OPERATION {SEG_NAME} {HCOM_ARGS_AND_CONTROL_ARGS}]
 828 
 829 
 830 Function: applies the Multics history_comment command to
 831 original-content source, include, info, and bindfile segments
 832 in the build directory.
 833 
 834 
 835 This information describes differences between the full Multics
 836 history_comment (hcom) command and the mbuild history (hcom) request.
 837 The mbuild hcom request makes the SEG_NAME argument optional by
 838 supplying names of original-content segments from the build script
 839 when SEG_NAME is omitted from the hcom request.  It then invokes the
 840 Multics hcom command with those addition arguments for each matching
 841 original-content segment.
 842 
 843 To learn more about the full Multics history_comment command, type:
 844    .. help hcom
 845 To learn more about individual history_comment operations, type:
 846    .. help hcom.HCOM_OPERATION
 847 For example:  .. help hcom.add_field
 848 
 849 
 850 Arguments:
 851 HCOM_OPERATION
 852    names the history_comment operation to perform on each segment.  See
 853    "List of hcom operations" below.
 854 SEG_NAME
 855    names the original-content segment(s) to process.  The name includes
 856    the language suffix (e.g., probe.pl1).  If not given, all
 857    original-content source, include, info, and bindfile segments in the
 858    installation directory are processed.  The star convention may be
 859    used to select several segments.
 860 
 861 
 862 HCOM_ARGS_AND_CONTROL_ARGS
 863    give any arguments and control arguments accepted by the:
 864       history_comment HCOM_OPERATION
 865    command.  For argument details, type:
 866       .. help hcom.HCOM_OPERATION
 867    where HCOM_OPERATION is an operation from "List of hcom operations"
 868    below.  Use double-quote characters around any Argument containing
 869    special characters.
 870 
 871 
 872 Control arguments (that differ from the hcom command):
 873 -approve {APPROVE_ID},
 874 -apv {APPROVE_ID}
 875    inserts into selected history comments having no approve element
 876    the given APPROVE_ID value.  The APPROVE_ID operand may be omitted
 877    if the build script  Information --  section contains a single
 878    Approve_IDs value; that Approve_ID attribute is used as the missing
 879    APPROVE_ID value.
 880 
 881 
 882 -install {INSTALL_ID},
 883 -in {INSTALL_ID}
 884    specifies an identifier associated with installing the changed
 885    module into execution libraries.  The INSTALL_ID operand may be
 886    omitted if the build script  Information --  section contains an
 887    Install_ID value; that Install_ID attribute is used as the missing
 888    INSTALL_ID value.
 889 
 890 
 891 List of hcom operations:
 892    For details about any hcom operation, type:
 893       .. help hcom.HCOM_OPERATION
 894 add
 895    adds a new history comment to a source program.
 896 add_field, af
 897    add missing fields to an existing history comment.
 898 replace_field, rpf
 899    replaces fields in an existing history comment.
 900 display, ds
 901    displays one or more history comments in a source program.
 902 format, fmt
 903    reformats history comments in a source program, placing them in
 904    standard form.
 905 
 906 
 907 check, ck
 908    checks history comments in a source program prior to its submission
 909    for installation to ensure that all fields except the INSTALL_ID are
 910    present.
 911 compare, cmp
 912    displays the differences, if any, between the source and original
 913    modules.
 914 exists
 915    checks to see if a history comment with certain attributes exists.
 916 get
 917    gets one or more field values from selected history comments.
 918 install
 919    checks history comments in a source program prior to its
 920    installation for completeness, and updates the INSTALL_ID field.
 921 
 922 
 923 Notes:
 924 Documentation for the Multics history_comment command includes the
 925 following sections giving more details about the command and its
 926 operations:
 927    Notes on format
 928    List of history comment fields
 929    Notes on typical usage
 930    Notes on validation routine
 931    Notes on syntax of validation routine
 932    Notes on arguments for validation routine
 933 
 934 To display these sections, type: .. help hcom -section TITLE_WORD
 935 where TITLE_WORD is one of the words in the section titles listed
 936 above.
 937 
 938 
 939 :[Info]: compile: comp:  2019-01-29  compile, comp
 940 
 941 Syntax:  compile {SEG_NAME} {-control_args}
 942          comp    {SEG_NAME} {-control_args}
 943 
 944 
 945 Function: compiles source segments to create their derived Unbound_obj
 946 segments.
 947 
 948 
 949 Arguments:
 950 SEG_NAME
 951    names a single segment to compile.  The name includes the language
 952    suffix (e.g., source.pl1).  If not given, all segments in the
 953    COMPILE list are compiled.  Useful to recompile a single source
 954    after correcting a compilation error.  The star convention is
 955    supported.
 956 
 957 
 958 Control arguments:
 959    If given, the following control arguments are added to any compile
 960    option given in the source statement for each segment.
 961 -list, -ls
 962    for a PL/I compilation, produces a source program listing followed
 963    by a list of all the names used in the compilation, followed by an
 964    assembly-like listing of the compiled object program.  Listing
 965    produced by other compilers may have other content.
 966 -table, -tb
 967    for a PL/I compilation, produces an Unbound_obj output containing a
 968    full symbol table for use by probe and debug commands.
 969 
 970 
 971 :[Info]: archive_prep: arch:  2021-02-14  archive_prep, arch
 972 
 973 Syntax:  archive_prep {-control_arg}
 974          arch         {-control_arg}
 975 
 976 
 977 Function: updates bound segment source/object archives.  Sorts updated
 978 archive components into alphanumeric order within their archive.
 979 Binds object archives to produce a bound segment.
 980 
 981 
 982 Control arguments:
 983 -list, -ls
 984    produces a listing segment whose name is derived from the name of
 985    the bound object segment plus a suffix of list.  The listing segment
 986    is generated to dprint; it contains the bound segment's bind control
 987    segment (see "Notes on bindfile"), its bind map, and that
 988    information from the bound object segment printed by the
 989    print_link_info command.  You can't invoke -list with -map.  In the
 990    absence of -list or -map, no listing segment is generated.
 991 -map
 992    produces a listing segment (with the suffixes list and map) that
 993    contains only the bind map information.  It is incompatible with
 994    -list.  In the absence of -list or -map, no listing segment is
 995    generated.
 996 
 997 
 998 -no_sort, -ns
 999    Most bind files have an Order statement controlling order in which
1000    object components appear in the output bound segment produced by
1001    the bind command.  For bound segments having no bind file or a bind
1002    file not using the Order statement, the bind command sequences
1003    object components by their order of appearance in input archives.
1004    Therefore, -no_sort should be used to suppress sorting of archives
1005    for such bound segments.
1006 
1007 
1008 :[Info]: install_ec: inst:  2022-10-23  install_ec, inst
1009 
1010 Syntax:  install_ec {-control_arg}
1011          inst       {-control_arg}
1012 
1013 
1014 Function: creates the Build_exec_com file, containing update_seg
1015 commands that install the segments identified in the build script.
1016 
1017 
1018 Control arguments:
1019 -list, -ls
1020    installs any .list segments found in the installation directory
1021    into the LIBRARY_NAME.listings target directory.
1022 
1023 
1024 Notes:
1025 If an Install_ID and one or more Approve_IDs attributes have been
1026 set for the build segment, and the build phase has been set to
1027 "installing", then a line containing those ID attributes is
1028 appended to the input provided by the install exec_com for its
1029 command:  update_seg -log
1030 
1031 Format of these IDs is:  (Approve_IDs, Install_ID)
1032 
1033 For example:  (MCR10126, MR12.8-1415)
1034 
1035 
1036 Examples:
1037 The following shows an install exec_com generated for a
1038 build script that installs a single include file.
1039 
1040 
1041                     test_09.mb.ec       10/23/22  1244.3 pdt Sun
1042 
1043 &version 2
1044 &trace &command off
1045 &-
1046 &- Phase:           installing;
1047 &- Descriptor:      >t>multics_libraries_;
1048 &- LogDir:          -library *.log;
1049 &-
1050 &- Approve_IDs:     MCR10126;
1051 &- Install_ID:      MR12.8-1619;
1052 &-
1053 &-
1054 delete test_09.mb.i? -brief -query_all
1055 us sd -set_log_dir ">ldd>log"   -acl re *.*.*  -rb 4 5 5     &- ---- set global defaults ----
1056 &-
1057 &attach &trim off
1058 us in test_09.mb.io -log -no_fill
1059  A) Install include segment.
1060  (MCR10126, MR12.8-1619)
1061 .
1062 &detach
1063 &-
1064 us in                           -acl r  *.*.*                &- -------- Include ------------
1065 us add mbuild_script_info_attr.incl.pl1 >ldd>include>==
1066 &-
1067 us ls
1068 us pr
1069 
1070 
1071 :[Info]: clean: cl:  2019-07-24  clean, cl
1072 
1073 Syntax:  clean {-control_args}
1074          cl    {-control_args}
1075 
1076 
1077 Function: Removes derived segments found/created by prior mbuild
1078 requests, or by the update_seg install command.  Use a control argument
1079 to reduce or widen the range of files removed.
1080 
1081 
1082 Control arguments:
1083 -all, -a
1084    Removes all files created by any mbuild request, except the build
1085    script segment.  Used when starting over on a build effort after
1086    compile or archive_prep requests report errors; or after:
1087    update_seg install or de_install.
1088 -installed, -inst
1089    Removes derived-content segment created by a build effort, leaving
1090    only: original-content segments; build script segment;
1091    Build_exec_com; and segments created by running the update_seg
1092    install command: the Build_io (.mb.io) installation object file;
1093    and the Build_log (.mb.il).  (default if neither -all nor -list is
1094    given.)
1095 -listings, -list, -ls
1096    Removes only listings (.list segments) created by the build effort.
1097 
1098 
1099 -intermediate, -inter
1100    Removes only intermediate source segments (those created by the 1st
1101    step of a 2-step translation.
1102 -query_all, -qya
1103    Lists segments to be removed and asks queries whether they should be
1104    deleted or not.  (default)
1105 -no_query_all, -nqya
1106    Removes segments without a query.  Segments removed are still
1107    listed.
1108 
1109 
1110 :[Info]: lib_names: libs:  2019-07-22  lib_names, libs
1111 
1112 Syntax:  lib_names {-control_arg}
1113          libs      {-control_arg}
1114 
1115 
1116 Function: Display library paths with preferred library name.
1117 
1118 
1119 Control arguments:
1120 -library, -lb
1121    Display library root directories defined in the current library
1122    descriptor, and the preferred library name identifying each
1123    directory. (default)
1124 -directory, -dir
1125    Display the preferred <dir-name> components for 2-component library
1126    names <lib-name>.<dir-name> used by mbuild.
1127 -analyze, -az, -analysis, -anal
1128    Show how preferred library names were devised for each root
1129    directory of the current library descriptor.
1130 
1131 
1132 :[Info]: paradigm: pdm:  2019-06-10  paradigm, pdm
1133 
1134 Syntax:  paradigm {paradigm name} {-control_args}
1135          pdm      {paradigm name} {-control_args}
1136 
1137 
1138 Syntax as an active request:  [pdm paradigm_name {-control_args}]
1139 
1140 
1141 Function: displays information about build paradigms, the procedures
1142 and policies for building a given type of segment, and installing it
1143 into the Multics Libraries.
1144 
1145 
1146 If invoked without args, displays a 3-line description of the known
1147 build paradigms including: name, purpose and example segments using
1148 that paradigm.
1149 
1150 If invoked with a paradigm_name and no control_args, displays a longer
1151 description of that paradigm.
1152 
1153 As an active function, specific information about a given paradigm is
1154 returned.
1155 
1156 
1157 Arguments:
1158 operation
1159    is "paradigm" or "pdm".
1160 paradigm_name
1161    names a paradigm to be displayed.  This is optional when invoked as
1162    a command, but required when used as an active function.
1163 
1164 
1165 Control arguments:
1166 -all, -a
1167    displays all information for the paradigm.
1168 -name, -nm
1169    displays the paradigm name.
1170 -purpose
1171    displays the purpose of the paradigm.
1172 -example
1173    displays an example segment that is built or installed using the
1174    paradigm.
1175 -steps
1176    displays steps performed as part of this build paradigm.
1177 
1178 
1179 :[Info]: seg_type: seg:  2019-06-10  seg_type, seg
1180 
1181 Syntax:  seg_type {seg_name} {-control_args}
1182          seg      {seg_name} {-control_args}
1183          seg_type -for_paradigm paradigm_name
1184          seg      -for_paradigm paradigm_name
1185 
1186 
1187 Syntax as an active request:  [seg_type seg_name {-control_args}]
1188                               [seg      seg_name {-control_args}]
1189 
1190 
1191 Function:  displays information about the different types of segments
1192 installed in the Multics Libraries.
1193 
1194 If invoked without args, summarizes known segment types installed in
1195 the Multics Libraries.  This includes a starname selecting a group of
1196 segments, and characteristics of segments in the group.
1197 
1198 If invoked with a seg_name and no control_args, displays full
1199 information about building and/or installing that segment.
1200 
1201 As an active function, returns selected information about build a given
1202 segment.
1203 
1204 
1205 Arguments:
1206 operation
1207    is "seg_type" or "seg"
1208 seg_name
1209    names a segment whose build/install information is displayed.  This
1210    argument is optional when invoked as a command, but required when
1211    used as an active function.
1212 
1213 
1214 Control arguments:
1215 -for_paradigm paradigm_name, -fpdm paradigm_name
1216    selects all segment types built using the given paradigm.  This
1217    control argument may not be used as an active function.
1218 -all, -a
1219    displays all information for the build type.
1220 -name, -nm
1221    displays a starname that matches segments in the build type.
1222 -description, -desc
1223    displays a title for segments matching the starname.
1224 -type, -tp
1225    displays the <seg-type> value given by mbuild in its
1226    Seg(<seg-type) structures for segments having the build type..
1227 -library, -lb
1228    displays library in which this type of file is installed.
1229 
1230 
1231 -compiler
1232    displays compiler command name used in building the segment.
1233 -option, -op
1234    displays default compiler option(s) used in building the segment.
1235 -isuffix, -isfx
1236    displays suffix of any intermediate files generated by the compiler.
1237    For example, the reductions compiler: generates a .pl1 file; invokes
1238    pl1 to compile this file; and leaves the .pl1 file in working
1239    directory as a debugging aid.
1240 -osuffix, -osfx
1241    displays suffix (if any) of object segment generated by the
1242    compiler.
1243 
1244 
1245 -paradigm, -pdm
1246    displays name of the paradigm used in building the segment.
1247 -steps
1248    displays steps performed as part of this build paradigm.
1249 
1250 
1251 :[Info]: help: h:  2020-04-24  help, h
1252 
1253 Syntax:  help {TOPIC} {-control_args}
1254          h    {TOPIC} {-control_args}
1255 
1256 
1257 Function: display information about a topic related to the mbuild
1258 system or its requests.
1259 
1260 
1261 Arguments:
1262 TOPIC
1263    is an mbuild request name; or build_script to display information
1264    about the Build Script Language.  If not given, a summary of mbuild
1265    requests is printed.
1266 
1267 
1268 Control arguments:
1269 -all, -a
1270    displays all information available without paragraph or section
1271    prompts.
1272 -brief, -bf
1273    displays a summary of request syntax, arguments, and control
1274    arguments.
1275 -control_arg ARG_NAME, -ca ARG_NAME
1276    displays full information about the given argument or control
1277    argument.
1278 -header, -he
1279    displays full pathname of info segment matching TOPIC.
1280 
1281 
1282 :[Info]: verify: vi:  2021-02-14  verify, vi
1283 
1284 Syntax:  vi {SEG_NAME} {-verify_info_control_args}
1285          vi -rules AREA
1286 
1287 
1288 Function: checks format of info segments; or displays rules and
1289 guidelines for info segment formatting and section titles.
1290 
1291 
1292 Arguments:
1293 SEG_NAME
1294    name the segment(s) to check.  The .info suffix must be given.
1295    The star convention may be used to select several segments.
1296    If SEG_NAME is not given, all info segments are checked.
1297    No SEG_NAME is permitted if -rules is given.
1298 
1299 
1300 Control arguments:
1301    Any control argument accepted by verify_info (vi) command may
1302    be given.  Commonly-used controls are described below.  For a
1303    full list of controls, type:  help verify_info -brief
1304 -names, -nm
1305   add names required by guidelines if missing from an info segment.
1306   Reorder names following guidelines.  If names exist that conflict
1307   with guidelines, ask user for permission to remove those names.
1308   If removal not granted, move conflicting names to end of name list.
1309   Name changes are listed in informational messages.
1310 -no_names, -nnm
1311   suppress name additions, removals, and reordering.  Error messages
1312   report names that are missing, conflict with guidelines, or need to
1313   be reordered.  (default)
1314 
1315 
1316 -force_names, -fnm
1317   change names to follow all guidelines without user queries.
1318 -rules {AREA}
1319   displays verify_info guidelines and rules for info segment structure
1320   and format.  See "List of rule areas" below.
1321 
1322 
1323 List of rule areas:
1324    The -rules AREA operand may be any of the following.
1325 all, a
1326   displays all rules and guidelines used by verify_info. (default)
1327 file, f
1328   displays guidelines for supported file structures (allowed order of
1329   :Info: :[Info]: :Entry: and :hcom: block divider lines within an
1330   info segment).
1331 block, bk
1332   displays rules used to determine the kind of each info block
1333   (e.g., command or active function, subroutine, subsystem request,
1334   etc.).
1335 
1336 
1337 section, scn
1338   displays Multics standard info segment section titles, and a list of
1339   obsolete or deprecated titles with a preferred replacement.
1340 KIND_OF_INFO_BLOCK
1341   displays section titles typical for a particular kind of info block
1342   including the usual order of appearance within the block of each
1343   title.  See "List of info block kinds" below.
1344 
1345 
1346 List of info block kinds:
1347   The -rules KIND_OF_INFO_BLOCK value may be any of the following.
1348 all_kinds, ak
1349   display section titles typical of all of the following block kinds.
1350 command, cmd
1351   display section titles used in info blocks describing commands
1352   and/or active functions.
1353 general_info, gi
1354   display section titles used in info blocks describing general
1355   information.
1356 
1357 
1358 subsystem, ss
1359   display section titles used in info blocks describing subsystem
1360   requests and/or active requests; subsystem request summary; or other
1361   subsystem topic.
1362 request, req
1363   display section titles used in info blocks describing subsystem
1364   requests and/or active requests.
1365 topics, topic
1366   display section titles used in info blocks describing subsystem
1367   topics (information not a request description or summary of
1368   requests).
1369 
1370 
1371 subroutine, subr
1372   display section titles used in info blocks describing a subroutine
1373   or function.  This includes a subroutine introduction block, and
1374   blocks describing a subroutine entry point.
1375 io_module, io
1376   display section titles used in info blocks describing an I/O module;
1377   or one of its setup operations (open_file, close_file, or detach);
1378   or one of its control orders.
1379 
1380 
1381 :[Info]: xref:  2021-02-15  xref
1382 
1383 Syntax:  xref {SEG_NAME} {-pcref_control_args}
1384 
1385 
1386 Function: displays crossref items (source files) that reference
1387 include files found in the installation directory.
1388 
1389 
1390 Arguments:
1391 SEG_NAME
1392    name the segment(s) to check.  The .incl.* suffix (or a more
1393    specific suffix like .incl.pl1 or .incl.alm) must be given.
1394    The star convention may be used to select several segments.
1395    If SEG_NAME is not given, all include segments are checked.
1396 
1397 
1398 Control arguments:
1399    Any control argument accepted by the peruse_crossref (pcref)
1400    command may be given.  For a full list of controls, type:
1401       help pcref -brief
1402 
1403 
1404 :[Info]: quit: q:  2020-07-27  quit, q
1405 
1406 Syntax:  q
1407 
1408 
1409 Function:  exits the subsystem and returns to Multics command level.
1410 
1411 
1412 :[Info]: ?:  2020-07-27  ?
1413 
1414 Syntax:  ?
1415 
1416 
1417 Function:  prints a list of requests available in this subsystem.
1418 
1419 
1420 Notes:
1421 There may be other requests available in the subsystem which are not
1422 listed by this request.  Such requests may be listed using the request:
1423    list_requests -all
1424 
1425 
1426 :[Info]: .:  2020-07-27  .
1427 
1428 Syntax:  .
1429 
1430 
1431 Function: prints the name and version of the subsystem, whether
1432 abbreviation processing is enabled in the subsystem, and the level of
1433 invocation of this instance of the subsystem if more than one
1434 invocation of the subsystem is active.
1435 
1436 
1437 Examples:
1438    mbuild mbuild__1.03 (abbrev)
1439 
1440 
1441 :Info: build_script.gi: build_script:  2022-09-06  Build Script Language
1442 
1443 Notes on build script segments:
1444 A build script contains four sections:
1445   Descriptions --
1446     free-form text (perhaps as bullet items) briefly describing
1447     purpose of a software change to the target library.
1448   Changes --
1449     lists the original-content segments residing in that installation
1450     directory, with information about an OPERATION to be performed,
1451     a containing library for each object, etc.  Each segment is
1452     described by a statement of the Build Script Language (see below).
1453 
1454 
1455   Information --
1456     gives attributes for the build process.  mbuild maintains content
1457     of this section.  It contains the following attribute name/value
1458     pairs:
1459       Phase:             installing;
1460       Descriptor:        >t>multics_libraries_;
1461       LogDir:            >ldd>log;
1462 
1463       Approve_IDs:       MCR10126;
1464       Install_ID:        MR12.8-1042;
1465 
1466       Developers:        GDixon.Multics;
1467       Auditors:          GDixon.Multics
1468                          Swenson.SysAdmin;
1469       Installers:        Swenson.SysAdmin;
1470 
1471 
1472   Status --
1473     free-form text giving the developer's perspective on progress in
1474     designing, coding, testing, and documenting the change.  The
1475     developer, auditor or installer may edit this section.
1476 
1477 
1478 Contents of the  Changes --  section is described by the information
1479 below.
1480 
1481 
1482 Notes on changes section:
1483 The  Changes --  section of the script gives instructions for creating
1484 a change or adding a new segment, etc.  Included steps cover:
1485 compiling source files; changing bound object source and object
1486 archives; bindfile changes to create the bound object; and installing
1487 the source, bound and unbound objects, include files and info
1488 segments, etc. into directories of the Multics Libraries.
1489 
1490 
1491 The mbuild command creates an initial version of the build script
1492 segment starting with an empty  Changes --  section.
1493 
1494 The scan request looks for original-content segments in the build
1495 directory, and guesses about where each segment fits in library
1496 directories specified in the current library descriptor.  It points
1497 out new segments which don't match any existing library item.  scan
1498 guesses are stored in mbuild's internal data.
1499 
1500 
1501 The analyze request uses scan information to associate each source
1502 with an existing bound segment in the library.  For new source
1503 segments, it guesses they will be compiled into a standalone object
1504 not associated with any bound segment.  A new info segment is
1505 associated with the existing info directory of the current library,
1506 or with an UNKNOWN.info directory if the library descriptor describes
1507 several libraries.
1508 
1509 
1510 When the analyze request ends, it saves a Build Language Statement for
1511 each original-content segment into the  Changes --  section of the
1512 build script.
1513 
1514 The user may then edit the  Changes --  section of the script to
1515 correct analysis errors, supply unknown data, specify names to be
1516 added to or removed from segments, etc.
1517 
1518 
1519 A subsequent mbuild read request parses the edited  Changes --
1520 section and loads the corrected information into mbuild's internal
1521 data.
1522 
1523 
1524 Overview of build script language:
1525 Each original-content segment of a build is described by a statement
1526 in the Build Script Language.  Language statements are summarized
1527 below.
1528 
1529 Items in braces are alternatives; only one is present in an actual
1530 statement.
1531 
1532 Note that a source_arch statement is used only for a bound object
1533 having more than one source archive (i.e., where source archive has a
1534 .<digit> in its name; e.g. bound_pl1_.2.s.archive).
1535 
1536 An add_name or delete_name statement is not used on a Bound_obj
1537 statement; names on a bound segment are specified by statements in its
1538 bindfile.
1539 
1540 
1541 Changes --
1542 
1543  Bound_obj       : <bound-object-name>       IN : <library-name>   { ADD | DELETE | REPLACE }  ;
1544      bindfile    : <bind-file-name>                                { ADD | DELETE | REPLACE }  ;
1545   source_arch    : <bound-source-archive-name>                     { ADD | UPDATE | REPLACE | DELETE }  ;
1546        source    : <source-seg-name>                               { ADD | DELETE | REPLACE }  <compiler-group> ;
1547 
1548  Unbound_obj     : <object-seg-name>         IN : <library-name>   { ADD | DELETE | REPLACE }  ;
1549        source    : <source-seg-name>                               { ADD | DELETE | REPLACE }  <compiler-group> ;
1550 
1551  Include         : <include-file-name>       IN : <library_name>   { ADD | DELETE | REPLACE }  ;
1552  Info            : <info-seg-primary-name>   IN : <library_name>   { ADD | DELETE | REPLACE }  ;
1553 
1554  Seg(<seg-type>) : <seg-name>                IN : <library_name>   { ADD | DELETE | REPLACE }  ;
1555 
1556 
1557 The following sub-statements may appear after the statements:  Bound_obj  Info
1558  add_name        : <name>... ;
1559  delete_name     : <name>... ;
1560 
1561 
1562 BNF specification of Build Script Language:
1563 
1564     -  { <alt-1> | <alt-2> | <alt-3> } identifies alternatives.  Choose only one of them.
1565        { <alt-1> | <alt-2> | <alt-3> }... says choose one or more of the alternatives.
1566 
1567     -  [....] says stuff is optional.  [....]... says choose zero or more of this item.
1568 
1569     -  User commenting may or may not be supported in the actual build script files.
1570        Such comments would have to be parsed/stored by read operation to be preserved for
1571        future save operations; and mbuild would have to learn how to display them.
1572 
1573 
1574    ----------                                                                      ----------
1575 <script-contents>       ::= <installable-item>...
1576 
1577 <installable-item>      ::= {<bound-object-group>|<unbound-object-group>|
1578                               <info-seg-group>|<include-file-group>|<unanalyzed-seg-group>}
1579 
1580 <bound-object-group>    ::= <bound-object-stmt> [<bindfile-stmt>] [<archive-source-group>]...
1581  <archive-source-group> ::  {<source-stmt>|<archive-stmt> <source-stmt>...}
1582 
1583 <unbound-object-group>  ::= <unbound-object-stmt> <source-stmt> [<naming-group>]...
1584 
1585 <include-file-group>    ::= <include-file-stmt> ;
1586 
1587 <info-seg-group>        ::= <info-seg-stmt> [<naming-group>]...
1588 
1589 <unanalyzed-seg-group>  ::= <unanalyzed-seg-stmt> [<naming-group>]... ;
1590 
1591 <bound-object-stmt>     ::= Bound_obj: <bound-object-name> <library> <bound-obj-operation> ;
1592   <library>             ::=  IN: <library-name>
1593   <bound-obj-operation> ::=  {ADD|UPDATE|DELETE}
1594 
1595 <bindfile-stmt>         ::=  bindfile: <bind-file-name> [<library>] <operation> ;
1596   <operation>           ::=  {ADD|REPLACE|DELETE}
1597 
1598 <archive-stmt>          ::=  source_arch:  <bound-source-archive-name> [<library>] <bound-obj-operation> ;
1599 
1600 <source-stmt>           ::=  source:   <source-seg-name> [<library>] <operation> [<compiler-group>]
1601   <compiler-group>      ::=   <compiler> [<compile-option>]... ;
1602   <compiler>            ::=   compiler: <compiler-name>
1603   <compile-option>      ::=   {<control-arg>|<control-arg> <value-word>}
1604 
1605 <unbound-object-stmt>   ::= Unbound_obj: <object-seg-primary-name> <library> <operation> ;
1606 
1607 <include-file-stmt>     ::= Include: <include-file-name> [<library>] <operation>;
1608 
1609 <info-seg-stmt>         ::= Info: <info-seg-primary-name> <library> <operation> ;
1610 
1611 <unanalyzed-seg-stmt>   ::= Seg(<seg-type>): <seg-name> <operation> ;
1612 
1613 <naming-group>          ::= <add_name-stmt>|<delete_name-stmt>
1614  <add_name-stmt>        ::=  add_name: <add-seg-name>... ;
1615  <delete_name-stmt>     ::=  delete_name: <del-seg-name>... ;
1616 
1617 <mb-script-item>        ::= {<mb-script-stmt>|<mb-exec_com_stmt>|<mb-log-stmt>}
1618  <mb-script-stmt>       ::= Build_script: <mb-seg-name>.mb ;
1619  <mb-exec_com-stmt>     ::= Build_exec_com: <mb-seg-name>.mb.ec ;
1620  <mb-log-stmt>          ::= Build_log: <mb-seg-name>.mb.list ;
1621 
1622 
1623 :hcom:
1624 
1625 /****^  HISTORY COMMENTS:
1626   1) change(2019-08-17,GDixon), approve(2019-10-25,MCR10069),
1627      audit(2020-01-20,Swenson), install(2020-01-20,MR12.6g-0035):
1628      Initial documentation for mbuild subsystem.  For details, see:
1629        MTB-1003  mbuild Subsystem
1630   2) change(2020-01-25,GDixon), approve(2020-01-25,MCR10079),
1631      audit(2020-02-02,Swenson), install(2020-02-02,MR12.6g-0045):
1632       A) To mbuild command, add control argument: -scan_read (default)
1633       B) To scan request, add control arguments: -query and -no_query
1634       C) To save request, add control argument: -description
1635       D) To analyze request, add control argument: -no_progress
1636       E) To read request, add control argument: -no_print
1637       F) To compare request, add control argument: -brief
1638       G) To set request, noting that -description now saves the new
1639          description setting to a build_script file.
1640       H) To print request, refine how -save_format works with
1641          -description and -analyze control arguments.
1642   3) change(2020-02-05,GDixon), approve(2020-02-05,MCR10079),
1643      audit(2020-04-30,Swenson), install(2020-04-30,MR12.6g-0046):
1644       A) Correct info seg formatting flaws found by validate_info_seg.
1645   4) change(2020-04-20,GDixon), approve(2020-04-20,MCR10079),
1646      audit(2020-04-30,Swenson), install(2020-04-30,MR12.6g-0046):
1647       A) Fix formatting flaws found by verify_info.
1648       B) Change documentation for set -seg request to indicate
1649          that the star convention may be used to set attributes of
1650          several Seg(...) structures.
1651   5) change(2021-02-18,GDixon), approve(2021-02-18,MCR10086),
1652      audit(2021-03-17,Swenson), install(2021-03-17,MR12.6g-0051):
1653       A) Change mbuild.info to correct errors found by
1654          validate_info_seg (vis).
1655       B) Document the new crossref (xref) request for displaying source
1656          programs using include files in the current installation
1657          directory.
1658       C) Change archive_prep (arch) request documentation to note that
1659          archive components are sorted in alphanumeric order by
1660          component name by default.  Document -no_sort (-ns) control
1661          which suppresses this automatic sorting.
1662       D) Add an info block describing the new xref request.
1663       E) Document the quit (q), ?, and . requests which were omitted
1664          from earlier versions of this info segment.
1665   6) change(2021-02-22,GDixon), approve(2021-02-22,MCR10086),
1666      audit(2021-03-31,Swenson), install(2021-03-31,MR12.6g-0054):
1667       A) Document the new verify (vi) request for checking format of
1668          info segments in the installation directory.
1669       B) Change info divider tokens to use subsystem request tokens
1670          :[Info]: supported by verify_info and the new help_ subsystem.
1671   7) change(2021-11-26,GDixon), approve(2021-12-07,MCR10102),
1672      audit(2021-12-07,Swenson), install(2021-12-08,MR12.8-1012):
1673       A) Change info block for print request to indicate print -Seg ENTRYNAME
1674          now accepts:  print -Seg STARNAME
1675   8) change(2022-09-12,GDixon), approve(2022-09-05,MCR10126),
1676      audit(2022-10-12,Swenson), install(2022-10-12,MR12.8-1042):
1677       A) Change info block for mbuild command to describe new arguments.
1678       B) Change info block for analyze request to describe auto-save of
1679          Changes --  section to build script segment.
1680       C) Change info block for the read request to describe new control
1681          arguments.
1682       D) Change info block for the print request to describe new control
1683          arguments.
1684       E) Change info block for the set request to describe new control
1685          arguments.
1686       F) Add info block for the add request.
1687       G) Change info block for the save request to remove doc for
1688          -control_args no longer supported/needed.
1689       H) Change history (hcom) info block to focus on differences between
1690          Multics history_comment command and the mbuild hcom request.
1691       I) Improve build_script.gi info block by removing references to
1692          old-style section title statements, and to discuss new sections
1693          supported in the build script segment.
1694   9) change(2022-10-23,GDixon), approve(2022-10-23,MCR10126a),
1695      audit(2022-10-25,Swenson), install(2022-10-25,MR12.8-1043):
1696       :Info: mbuild:
1697         mA) Correct syntax of line appended to  Description --  section by
1698             the -installing -ctl_arg.
1699         mB) Correct description of -approve Approve_ID operand.
1700         mC) Correct description of -install Install_ID operand.
1701       [:Info:] print:
1702         pA) Document the print -phase -ctl_arg.
1703       [:Info:] set:
1704         sA) Correct description of -approve Approve_IDs operand.
1705         sB) Correct description of -install Install_ID operand.
1706         sC) Describe limits on number of -ctl_args allowed in each request.
1707       [:Info:] add:
1708         aA) Correct description of -approve Approve_IDs operand.
1709         aB) Describe limits on number of -ctl_args allowed in each request.
1710       [:Info:] install_ec:
1711         iA) Describe add-on line to update_seg -log input.
1712         iB) Add Examples section showing small install exec_com.
1713       :Info: build_script.gi:
1714         gA) List  Attribute_Name: Value;  pairs found in Information --
1715                  section of build script.
1716                                                    END HISTORY COMMENTS */