This is Info file fweb.info, produced by Makeinfo-1.55 from the input file fweb.texinfo. This file documents FWEB... Copyright 1993 John A. Krommes Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to process this file through TeX and print the results, provided the printed document carries a copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual). Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section entitled "Copying" is included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the author. File: fweb.info, Node: Environment variables, Next: Initialization, Prev: Customization, Up: Customization Environment variables ===================== `FWEB_INCLUDES' -- Colon-delimited list of directories to search for include files. (One can append to this list by means of the `-I' option; see *Note -I_::.) `FWEB_INI' -- Name of the initialization file. If not defined, either `.fweb' or `fweb.ini' is chosen, depending on the machine. The initialization file always resides in `$HOME'. `FWEB_STYLE_DIR' -- Directory in which style file resides. If not defined, the current directory is used. File: fweb.info, Node: Initialization, Next: Memory allocation, Prev: Environment variables, Up: Customization Initialization ============== The initialization file ----------------------- On startup, FWEB attempts to read an initialization file. This always resides in the user's HOME directory. It is usually called `.fweb' (`fweb.ini' on personal computers). The default file name can be overridden by the environment variable `FWEB_INI'. One may put into `.fweb' any option that might be used as a command-line option. (Presently, there must be just one entry per line.) If the option begins with a `+', it is processed before the actual command-line options; otherwise, it is processed after. Generally, `.fweb' options should begin with `+' so that one may override them from the command line. File: fweb.info, Node: Memory allocation, Next: Style, Prev: Initialization, Up: Customization Memory allocation ----------------- The command-line option `-y' (*note -y::.) is used to change the default allocation for a dynamic array. The arrays have a one- or two-character abbreviation denoted by aa. Some error messages will use this abbreviation when suggesting that you increase a default allocation. To query the present allocations of variable aa, just say `-y'aa. To query everything, say `-y'. (The detailed explanations for these arrays aren't here yet. The on-line info has a terse list.) * Menu: * -yb:: Maximum bytes for identifiers, index entries, and module names. * -ybs:: Size of the change buffer. * -ycb:: Size of line buffer for C output. * -ycf:: A Ratfor buffer. * -ycg:: Another Ratfor buffer. * -yd:: Increment for expanding the dots table. * -ydt:: Maximum number of deferred macro tokens. * -ydx:: Maximum Number of deferred macro texts. * -ykt:: Stack size for FTANGLE. * -ykw:: Stack size for FWEAVE. * -yll:: Line length for FWEAVE's output. * -yln:: Maximum length of module names or strings. * -ylb:: Maximum number of nested loops in Ratfor. * -ylx:: Maximum length of expressions that can be expanded with the post-increment operators of Fortran or Ratfor. * -ym:: Maximum number of sections. * -yma:: Maximum number of arguments to WEB macros. * -ymb:: Size of the buffer for expanding WEB macros. * -yn:: Maximum number of identifiers, strings, and module names. * -ynf:: Maximum number of open input files. * -yop:: Maximum number of entries in the table for operator overloading. * -yr:: Maximum number of cross-references. * -ys:: Maximum number of scraps. * -ysb:: Size of style-file buffer. * -ytt:: Maximum number of tokens that FTANGLE can process. * -ytw:: Maximum number of tokens in the current section being processed by FWEAVE. * -yx:: Maximum number of texts. * -yxb:: Size of line buffer for TeX output. File: fweb.info, Node: -yb, Next: -ybs, Prev: Memory allocation, Up: Memory allocation File: fweb.info, Node: -ybs, Next: -ycb, Prev: -yb, Up: Memory allocation File: fweb.info, Node: -ycb, Next: -ycf, Prev: -ybs, Up: Memory allocation File: fweb.info, Node: -ycf, Next: -ycg, Prev: -ycb, Up: Memory allocation File: fweb.info, Node: -ycg, Next: -yd, Prev: -ycf, Up: Memory allocation File: fweb.info, Node: -yd, Next: -ydt, Prev: -ycg, Up: Memory allocation File: fweb.info, Node: -ydt, Next: -ydx, Prev: -yd, Up: Memory allocation File: fweb.info, Node: -ydx, Next: -ykt, Prev: -ydt, Up: Memory allocation File: fweb.info, Node: -ykt, Next: -ykw, Prev: -ydx, Up: Memory allocation File: fweb.info, Node: -ykw, Next: -yll, Prev: -ykt, Up: Memory allocation File: fweb.info, Node: -yll, Next: -yln, Prev: -ykw, Up: Memory allocation File: fweb.info, Node: -yln, Next: -ylb, Prev: -yll, Up: Memory allocation File: fweb.info, Node: -ylb, Next: -ylx, Prev: -yln, Up: Memory allocation File: fweb.info, Node: -ylx, Next: -ym, Prev: -ylb, Up: Memory allocation File: fweb.info, Node: -ym, Next: -yma, Prev: -ylx, Up: Memory allocation File: fweb.info, Node: -yma, Next: -ymb, Prev: -ym, Up: Memory allocation File: fweb.info, Node: -ymb, Next: -yn, Prev: -yma, Up: Memory allocation File: fweb.info, Node: -yn, Next: -ynf, Prev: -ymb, Up: Memory allocation File: fweb.info, Node: -ynf, Next: -yop, Prev: -yn, Up: Memory allocation File: fweb.info, Node: -yop, Next: -yr, Prev: -ynf, Up: Memory allocation File: fweb.info, Node: -yr, Next: -ys, Prev: -yop, Up: Memory allocation File: fweb.info, Node: -ys, Next: -ysb, Prev: -yr, Up: Memory allocation File: fweb.info, Node: -ysb, Next: -ytt, Prev: -ys, Up: Memory allocation File: fweb.info, Node: -ytt, Next: -ytw, Prev: -ysb, Up: Memory allocation File: fweb.info, Node: -ytw, Next: -yx, Prev: -ytt, Up: Memory allocation File: fweb.info, Node: -yx, Next: -yxb, Prev: -ytw, Up: Memory allocation File: fweb.info, Node: -yxb, Prev: -yx, Up: Memory allocation File: fweb.info, Node: Style, Prev: Memory allocation, Up: Customization The Style file ============== A style file (default name `fweb.sty') may reside in the user's current directory (or directory specified by the environment variable `FWEB_STYLE_DIR'). The default name can be changed by the command-line option `-z' (*note -z::.). The style file is processed after all command-line options have been processed. Note that the command-line option `-p' (*note -p::.) buffers up style-file entries. Effectively, these are treated as residing in a temporary file that is read just before the local style file. Thus, `-p' options placed in `.fweb' behave as `global' style-file entries and will be overridden by a matching entry in the local style file. Style-file entries have the form keyword [=] value For example, LaTeX.options = "eqalign" The syntax is completely free-form. The descriptions of the parameters aren't completed yet. Please see the reference guide. * Menu: * Index params:: Customizing the index. * Module params:: Customizing the list of sections. * Contents params:: Customizing the table of contents. * Subscript params:: Customizing subscripting for cross-references. * Fwebmac params:: Customizing behavior of FWEB's macros. * Completion params:: Automatic selection of file extensions, etc. * Control-code mappings:: Remapping FWEB's control codes (danger)! * Miscellaneous params:: Other customizations. File: fweb.info, Node: Index params, Next: Module params, Prev: Style, Up: Style Customizing FWEAVE's index -------------------------- * Menu: * delim_0: S_delim. Insert after identifier in index entry. * delim_n: S_delim. Insert between section numbers in index entry. * encap.infix: S_encap. Start the section number. * encap.prefix: S_encap. TeX macro to begin a section number. * encap.suffix: S_encap. Ends the section number. * group_skip:: * index.collate: S_index. Collating sequence for index. * index.postamble: S_index. TeX material to end the index. * index.preamble: S_index. TeX material to begin the index. * index.tex: S_index. Name of file holding index. * item_0:: TeX command to begin an index entry. * language.prefix: S_language. Begin a language entry in the index. * language.suffix: S_language. End a language entry in the index. * lethead.prefix: S_lethead. Begin a letter group. * lethead.suffix: S_lethead. End a letter group. * lethead.flag: S_lethead. Control beginning of letter group. * underline.prefix: S_underline. Begin an underlined index entry. * underline.suffix: S_underline. End an underlined index entry. File: fweb.info, Node: S_index, Next: S_delim, Prev: Index params, Up: Index params `index' ....... `index.tex' is the name of the file into which the index is written. The character '#' is translated into the root name of the web file. `index.preamble' are TeX commands that begin the index. `index.postamble' are TeX commands that end the index. `index.collate' specifies the collating sequence for the index. File: fweb.info, Node: S_delim, Next: S_encap, Prev: S_index, Up: Index params `delim' ....... `delim_0' is the string to insert after the identifier in an index entry. `delim_n' is the string to insert between two section numbers in an index entry. File: fweb.info, Node: S_encap, Next: group_skip, Prev: S_delim, Up: Index params File: fweb.info, Node: group_skip, Next: item_0, Prev: S_encap, Up: Index params `group_skip' ............ `group_skip' is a string of TeX commands to insert between letter groups. File: fweb.info, Node: item_0, Next: S_language, Prev: group_skip, Up: Index params `item_0' ........ `item_0' is the TeX command to begin an index entry. File: fweb.info, Node: S_language, Next: S_lethead, Prev: item_0, Up: Index params `language' .......... `language.prefix' begins a language entry.; `language.suffix' ends File: fweb.info, Node: S_lethead, Next: S_underline, Prev: S_language, Up: Index params `lethead' ......... `lethead.prefix' begins a letter group; `lethead.suffix' ends one. The flag `lethead.flag' controls the format of the letter group: if it is zero, nothing is inserted; if it is positive, an upper-case letter is inserted; if it is negative, a lower-case letter is inserted. File: fweb.info, Node: S_underline, Prev: S_lethead, Up: Index params `underline' ........... `underline.prefix' is the TeX command to begin an underlined index entry. `underline.suffix' is the TeX command to end an underlined index entry. File: fweb.info, Node: Module params, Next: Contents params, Prev: Index params, Up: Style Customizing the module list --------------------------- * Menu: * modules.info: S_modules. * modules.postamble: S_modules. TeX commands to end module list. * modules.preamble: S_modules. TeX commands to begin module list. * modules.tex: S_modules. Name of file containing list of modules. File: fweb.info, Node: S_modules, Prev: Module params, Up: Module params `modules.tex' is the name of the file into which the module names are written. `modules.preamble' is a string of TeX commands to begin the list of modules. `modules.postamble' is a string of TeX commands to end the list of modules. `modules.info' is the name of the TeX macro that formats the command line and related information. File: fweb.info, Node: Contents params, Next: Subscript params, Prev: Module params, Up: Style Customizing the table of contents --------------------------------- * Menu: * contents.postamble: S_contents. TeX commands to end table of contents. * contents.preamble: S_contents. TeX commands to begin table of contents. * contents.tex: S_contents. Name of contents file. File: fweb.info, Node: S_contents, Prev: Contents params, Up: Contents params `contents.tex' is the name of the file into which the table of contents is written. `contents.preamble' is the TeX string that begins printing the table of contents. `contents.postamble' is the TeX string that ends the table of contents. File: fweb.info, Node: Subscript params, Next: Fwebmac params, Prev: Contents params, Up: Style Customizing cross-reference subscripts -------------------------------------- When FWEAVE pretty-prints code, it can attach cross-reference subscripts to various kinds of identifiers. The following flags select which identifiers are so subscripted. * Menu: * mark_defined.generic_name: S_mark_defined. * mark_defined.fcn_name: S_mark_defined. * mark_defined.WEB_macro: S_mark_defined. * mark_defined.outer_macro: S_mark_defined. * mark_defined.exp_type: S_mark_defined. * mark_defined.typedef_name: S_mark_defined. File: fweb.info, Node: S_mark_defined, Prev: Subscript params, Up: Subscript params File: fweb.info, Node: Fwebmac params, Next: Completion params, Prev: Subscript params, Up: Style Customizing the behavior of `fwebmac.sty' macros ------------------------------------------------ To some extent, the behavior of FWEB's macro package `fwebmac.sty' can be changed by means of the following parameters, instead of actually editing `fwebmac.web' itself. * Menu: * format.reserved: S_format. * format.short_identifier: S_format. * format.outer_macro: S_format. * format.WEB_macro: S_format. * format.intrinsic: S_format. * format.keyword: S_format. * format.typewriter: S_format. * format.wildcard: S_format. * indent.TeX: S_indent. Paragraph indentation for TeX part. * indent.code: S_indent. Paragraph indentation for code part. * LaTeX.options: S_LaTeX. Set options for document style. * LaTeX.style: S_LaTeX. Specify document style. File: fweb.info, Node: S_format, Next: S_indent, Prev: Fwebmac params, Up: Fwebmac params `format' ........ The `format' fields specify the macro to use to pretty-print various kinds of identifiers, as follows: (not finished). File: fweb.info, Node: S_indent, Next: S_LaTeX, Prev: S_format, Up: Fwebmac params `indent' ........ `indent.TeX' specifies paragraph indentation for the TeX part. `indent.code' specifies similar indentation for the code part. File: fweb.info, Node: S_LaTeX, Prev: S_indent, Up: Fwebmac params When running under LaTeX, the documents is (effectively) begun by the command `\documentstyle[options]{style}'. The options field can be specified by `LaTeX.options'; the style field by `LaTeX.style'. File: fweb.info, Node: Control-code mappings, Next: Miscellaneous params, Prev: Completion params, Up: Style (To be finished.) File: fweb.info, Node: Miscellaneous params, Prev: Control-code mappings, Up: Style Miscellaneous style-file parameters ----------------------------------- * Menu: For FTANGLE: * ASCII_fcn:: Routine for converting strings to ASCII. * cchar:: Continuation character for Fortran. * cdir_start:: `?' translates to this. * line_length: S_line_length. * meta.top: S_meta_t. Material to precede tangled meta-comment. * meta.prefix: S_meta_t. Begins each line of meta-comment. * meta.bottom: S_meta_t. Material that follows the meta-comment. * outer.def: S_outer. FTANGLE converts `@d' to this. * outer.undef: S_outer. FTANGLE converts `@u' to this. * protect:: Protection character to end a continued line. * suffix:: Suffixes for output files. For FWEAVE: * macros:: Default name of the macro package to be read in by FWEAVE. * limbo:: Default material to begin the limbo part * meta.code.begin: S_meta_w. * meta.code.end: S_meta_w. * meta.TeX.begin: S_meta_w. TeX material to begin FWEAVE's output of a meta-comment. * meta.TeX.end: S_meta_w. As above, but end the meta-comment. * preamble.named: S_preamble. TeX material to begin named section. * preamble.unnamed: S_preamble. TeX material to begin unnamed section. For both processors: * dot_constant.begin: S_dot_constant. Beginning character for dot constant. * dot_constant.end: S_dot_constant. Ending character for dot constant. * null_file:: Name of the null file. File: fweb.info, Node: ASCII_fcn, Next: cchar, Prev: Miscellaneous params, Up: Miscellaneous params `ASCII_Fcn' ........... *Note AT"::. File: fweb.info, Node: cchar, Next: cdir_start, Prev: ASCII_fcn, Up: Miscellaneous params `cchar' ....... Continuation character for Fortran code output. File: fweb.info, Node: cdir_start, Next: S_line_length, Prev: cchar, Up: Miscellaneous params `cdir_start' ............ This parameter has the form `cdir_start.l', where l is one of `C', `Cpp', `N', `N90', `R', `R90', `X', or `V'. The contents of this parameter is written immediately after the `@?' that begins a compiler directive. File: fweb.info, Node: S_line_length, Next: S_meta_t, Prev: cdir_start, Up: Miscellaneous params File: fweb.info, Node: S_meta_t, Next: S_outer, Prev: S_line_length, Up: Miscellaneous params `meta' (FTANGLE) ................ `meta.top.l' specifies text that precedes material enclosed by `@(...@)'. `meta.prefix.l' begins each line of the meta-comment. `meta.bottom.l' specifies text that follows the meta-comment. File: fweb.info, Node: S_outer, Next: protect, Prev: S_meta_t, Up: Miscellaneous params `outer' ....... FTANGLE converts `@d' to `outer.def', and `@u' to `outer.undef'. File: fweb.info, Node: protect, Next: suffix, Prev: S_outer, Up: Miscellaneous params `protect' ......... The strings `protect.l' specify the protection character(s) to end a continued line. File: fweb.info, Node: suffix, Next: macros, Prev: protect, Up: Miscellaneous params `suffix' ........ The extension for the files output by FTANGLE is specified by `suffix.l'. File: fweb.info, Node: macros, Next: limbo, Prev: suffix, Up: Miscellaneous params `macros' ........ The default name of the macro package to be read in. (This can be overridden by the command-line option `-w'; see *Note -w::.) File: fweb.info, Node: limbo, Next: S_meta_w, Prev: macros, Up: Miscellaneous params `limbo' ....... TeX material to be printed at the beginning of the limbo part, just before the text from `@l' commands. *Note ATl::. File: fweb.info, Node: S_meta_w, Next: S_preamble, Prev: limbo, Up: Miscellaneous params `meta' (FWEAVE) ............... File: fweb.info, Node: S_preamble, Next: S_dot_constant, Prev: S_meta_w, Up: Miscellaneous params `preamble' .......... Additional TeX material can be inserted at the beginning of a named section with `preamble.named' and at the beginning of an unnamed one with `preamble.unnamed'. File: fweb.info, Node: S_dot_constant, Next: null_file, Prev: S_preamble, Up: Miscellaneous params `dot_constant' .............. In Fortran, `dot' constants such as `.LT.' are begun and ended by periods. In special circumstances, the beginning and ending characters may be modified by `dot_constant.begin.l' and `dot_constant.end.l'. File: fweb.info, Node: null_file, Prev: S_dot_constant, Up: Miscellaneous params `null_file' ........... The name of the null file. For more discussion, see *Note Change files::. File: fweb.info, Node: Completion params, Next: Control-code mappings, Prev: Fwebmac params, Up: Style Automatic file name completion: ------------------------------- * Menu: * ext.web: S_ext. Extensions for the web file. * ext.change: S_ext. Extensions for the change file. * ext.hweb: S_ext. Extensions for include files. * ext.hchange: S_ext. Extensions for change files associated with include files. File: fweb.info, Node: S_ext, Prev: Completion params, Up: Completion params For more information, see *Note -e::. File: fweb.info, Node: Hints, Next: New features, Prev: Customization, Up: Top USAGE TIPS and SUGGESTIONS ************************** In this section we collect various tips and suggestions to help one make full use of FWEB. *(There's more to come here!)* Converting an existing code to FWEB =================================== In summary, to convert an existing code to FWEB, you should do the following. (The following simple procedure assumes that you put all the subroutines into the unnamed module. However, other more elaborate schemes are possible.) 1. Place invisible commentary about the author, version, etc. at the beginning of the source file by bracketing it with `@z...@x'. The `@z' must be the first two characters of the file. 2. Next, set the language by including a command such as `@n'. 3. Place an `@a' command before each program unit (e.g., main program, subroutine, or function). 4. Before each `@a', place an `@*' or `@ ' command, followed by TeX documentation about that particular section of code. 5. If you have program units longer than about twelve lines, either make them function calls, if you can afford the overhead and can impart sufficient information via the function name, or break them up into shorter fragments by using named modules. Insert the command `@' in place of the fragment you're replacing, then put that fragment somewhere else, prefaced by `@ ' and `@='. 6. Make sure your comments are valid TeX. (You can't have things like raw underscores or dollar signs in comments, since those cause TeX to take special actions.) 7. Beautify and clarify your documentation by using code mode (enclosing stuff between vertical bars) liberally within your TeX. 8. After you've seen the woven output, you may need to go back and format a few identifiers or section names so that FWEAVE understands them properly, or you may need to insert some pseudo-semicolons (`@;'), pseudo-expressions (`@i'), or pseudo-colons (`@:'). 9. Consider using the built-in macro preprocessor to make your code more readable--for example, replace raw numerical constants by symbolic names. 10. If you are a FORTRAN user, for ultimate readability consider converting to RATFOR. The initial annoyance is getting rid of column~6 continuations. With the aid of a good editor, this can be done simply. For example, in `emacs' one can replace the regular expression [carriage return, five spaces, something not equal to space, tab, or 0] with [backslash, carriage return, six spaces]: M-x replace-regexp RET C-q C-j \.{\ \ \ \ \ }[\^\.\ tab 0]RET \\\\ C-q C-j \.{\ \ \ \ \ \ }RET Get rid of the keywords such as then or end if in favor of braces. Change singly-quoted character strings to doubly-quoted ones. Programming tips and other suggestions ====================================== *This section will be enlarged in the future!* Meanwhile, please feel free to contact `krommes@princeton.edu' for help and advice, and to suggest items to include here. 1. Periodically check `ftp.pppl.gov:/pub/fweb/READ_ME' for bug reports and other news. Make bug reports! *Note Support::. 2. Most options in `.fweb' should begin with `+' so they can be overridden by command-line options for the job itself. *Note Initialization:: 3. Put standard command-line options into `.fweb'. Also put there standard style parameters--e.g., +pindex.tex "#.ndx" +pmodules.tex "#.mds" +pcontents.tex "#.cts" 4. Learn how to use the style file. *Note Style::. 5. Use the info options `-@', `-D', `-y', and `-Z' to find out about various internal FWEB tables (control codes, reserved words, memory allocations, and style-file parameters). *Note Info options::. 6. Begin all FWEB sources with invisible commentary bracketed by `@z...@x'. *Note ATz::. 7. Always include an explicit language-setting command in the limbo section. *Note Languages::. 8. Keep sections quite short. Knuth suggests a dozen lines. That's quite hard to achieve sometimes, but almost never should a section be more than a page long. 9. It's easy to define macros from the command line to expedite conditional preprocessing. *Note -m::. 10. Use the preprocessor construction `@#if 0...@#endif' to comment out unwanted code. *Note Preprocessing::. 11. For logical operations with the preprocessor, use `||', not `|'. 12. It's conventional to identify the ends of long preprocessor constructions as follows: @#if A . . @#endif // |A| 13. To debug an errant WEB macro, use the built-in function `$DUMPDEF'. *Note $DUMPDEF::. 14. Use `@?' for compiler directives. *Note AT?::. Use the style-file parameters `cdir_start' to specify information that will be written out at the beginning of the line. 15. Stick to the standard FWEB commenting style `/*...*/' or `//...'. Don't use alternatives such as FORTRAN's column 1 convention; these may not work or may not be supported someday. *Note Comments::. 16. The meta-comment feature `@(...@)' provides a poor-man's alignment feature. But that's not in the spirit of TeX; learn to use `\halign' or the LaTeX alternatives. 17. In FORTRAN, use `#:0' to declare readable alphabetic statement labels. *Note Macros:: 18. When mixing languages, define the language of a module at the highest possible level--e.g., in the unamed module, not after `@<...@>='. File: fweb.info, Node: New features, Next: Support, Prev: Hints, Up: Top NEW FEATURES, version 1.40 ************************** 1. *The meaning of `@+' has changed.* (SORRY!) Formerly, this inhibited a line break; that function is now performed by `@~'. The new meaning of `@+' is to force an index entry (the opposite of `@-', which inhibits an index entry). If you have large codes using the old `@+' that you do not wish to convert, you can recover the old mappings by placing the following commands into `fweb.sty': yes_index = "~" no_line_break = "+" However, please try to make the conversion; the new codes are intended to be more symmetrical and easier to remember. 2. *Built-in functions now begin with `$', not `_'.* The underscore prefix was a bad design decision; it introduces conflicts with ANSI C in certain circumstances. To ease conversion, the old forms are still understood. Thus, one can use `$EVAL' and `_EVAL' interchangably. However, the underscore forms may be deleted in future releases. 3. *Full LaTeX support.* FWEB no longer usurps LaTeX's `\output' routine, and LaTeX's sectioning commands, table-of-contents commands, etc. are used. The appearance of the woven output is changed to be more book-like. (This is an experiment.) 4. *Verbatim language.* `@Lv' selects a language-independent format. *Note Verbatim:: 5. *Language-independent mode.* The N mode inhibits pretty-printing, blank compression, etc.; source code is essentially copied literally from input to output. This mode is turned on automatically by the VERBATIM language, but it can also be used with the other languages. It is turned on by the command-line option `-N' or the local command `@N'. *Note ATN_::. 6. *Writing of temporary files.* When the `-F' command-line option is in effect, tangled output is written to temporary files instead of the final target files, and the temporary files are compared to the last version of the target files on disk. If there is no change, the target files are not updated. This avoid unnecessary recompilation if only the documentation, not the code, was changed. *Note -F_::. 7. *Converting output tokens to lower case.* *Note -U_::. 8. *The built-in functions `$E' and `$PI'.* *Note $E::, *Note $PI::. 9. *The built-in functions `$EXP', `$LOG', and `$LOG10'.* *Note $EXP::, *Note $LOG::, and *Note $LOG10::. 10. *`$MAX' and `$MIN' generalized to take arbitrary list of arguments.* *Note $MAX::, *Note $MIN::. 11. *The marriage-saver option*. In response to a serious user request, see *Note -B_::. File: fweb.info, Node: Support, Next: Index, Prev: New features, Up: Top SUPPORT ******* FWEB is supported by John Krommes, `krommes@princeton.edu'. This project is a *spare-time activity*! I try for, but cannot promise, reasonably quick (one week) response to questions. Bug reports submitted with very short test files will be verified. For very simple fixes, a change file will be provided. Generally, however, bugs are not fixed until the next release. Releases occur intermittently, depending on my other professional obligations. Suggestions are very welcome. Many of FWEB's current features were incorporated in response to users' requests. However, the queue for future improvements is long; nothing may happen immediately. Marcus Speh moderates an FWEB FAQ. See `/pub/fweb/faq'. File: fweb.info, Node: Index, Prev: Support, Up: Top Index ***** The index is obviously not complete; the following are tests. * Menu: * Files: Files. * Literate programming: Intro. * Modules: Modules. * Named module: Modules. * Parts: Structure. * Sections: Structure. * tempnam: -F_. * tmpnam: -F_. * Unnamed module: Modules.