This commit slightly improves the formatting of the manuals.  My
OpenBSD machine uses mandoc(1) to format manuals.  I check the manuals
with `mandoc -T lint` and fix most of the warnings.  I also make
other changes where mandoc didn't warn me.
roff(7) says, "Each sentence should terminate at the end of an input
line," but we often forgot this rule.  I insert some newlines after
sentences that had ended mid-line.
roff(7) also says that blank lines "are only permitted within literal
contexts."  I delete blank lines.  This removes some extra blank lines
from mandoc's output.  If I do want a blank line in the output, I call
".sp 1" to make it in man(7).  If I want a blank line in the source,
but not the output, I put a plain dot "." so roff ignores it.
Hyphens used for command-line options, like \-a, should be escaped by
a backslash.  I insert a few missing backslashes.
mandoc warns if the date in .TH doesn't look like a date.  Our manuals
had a missing date or the RCS keyword "$Revision$".  Git doesn't
expand RCS keywords.  I put in today's date, 2017-01-18.
Some manuals used tab characters in filled mode.  That doesn't work.
I use .nf to turn off filled mode, or I use .IP in man(7) to make the
indentation without a tab character.
ack(1) defined a macro .SB but never used it, so I delete the
definition.  I also remove a call to the missing macro .RF.
mandoc warns about empty paragraphs.  I deleted them.  mandoc also
warned about these macro pairs in anm(1):
    .SM
    .B text
The .SM did nothing because the .B text is on a different line.  I
changed each pair to .SB for small bold text.
I make a few other small changes.
		
	
			
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.TH EM_B 6 2017-01-18
 | 
						|
.ad
 | 
						|
.SH NAME
 | 
						|
em_b \- ACK B compiler
 | 
						|
.SH SYNOPSIS
 | 
						|
.B ~em/lib/ack/em_b
 | 
						|
.RI [ options ]
 | 
						|
.SH DESCRIPTION
 | 
						|
.I em_b
 | 
						|
is a port of the ABC B compiler to the ACK.
 | 
						|
Interested parties will be
 | 
						|
interested in the upstream distribution here:
 | 
						|
.nf
 | 
						|
.sp
 | 
						|
https://github.com/aap/abc
 | 
						|
.fi
 | 
						|
.PP
 | 
						|
However, the version here has been heavily modified \(em bug reports should be
 | 
						|
filed with the ACK, not with the upstream compiler.
 | 
						|
.PP
 | 
						|
Since B was designed for machines with word addressing, some hacking is
 | 
						|
required to make it work on modern, byte addressed machines.
 | 
						|
The generated
 | 
						|
code expects B variables to contain word addresses, and then generates
 | 
						|
code to transform these into native addresses before use (which,
 | 
						|
unfortunately, impacts performance).
 | 
						|
However, the ACK's linker doesn't know
 | 
						|
how to emit word addresses into the program's data sections, and so a
 | 
						|
separate fixup stage has to happen at runtime, just before \fBmain()\fP,
 | 
						|
to convert the byte addresses into word addresses.
 | 
						|
.PP
 | 
						|
The end result is that using multiple source files with B is somewhat
 | 
						|
unwieldy, requiring each module to be explicitly named and then an extra
 | 
						|
stage to generate the fixup code.
 | 
						|
See the \fBack\fP(1) and \fBabmodules\fP(1) for details.
 | 
						|
.SH OPTIONS
 | 
						|
.I em_b
 | 
						|
accepts the following flags:
 | 
						|
.IP \-w\ \fIsize\fP
 | 
						|
Sets the word size, used for scaling addresses.
 | 
						|
Usually either 2 or 4.
 | 
						|
.IP \-B\ \fIname\fP
 | 
						|
Sets the name of the module currently being compiled (used to generate the
 | 
						|
fixup table symbol name).
 | 
						|
Defaults to \fImain\fP if not specified.
 | 
						|
.IP \-i\ \fIfilename\fP
 | 
						|
The source B file.
 | 
						|
.IP \-o\ \fIfilename\fP
 | 
						|
The output compact EM bytecode file.
 | 
						|
.SH SEE ALSO
 | 
						|
\fIack\fR(1), \fIabmodules\fR(1)
 | 
						|
.SH REMARKS
 | 
						|
It is very unlikely the \fIem_b\fP will ever be useful for anything.
 |