Frequently asked questions about the PennMUSH Server, post-pl10
Updated: November 11, 2006

*** There are other FAQs on the web at:
*** http://www.pennmush.org/cgi-penn/fom/

0. What's the release history since 1.50pl10?
1. How do I ask for help with a problem?
2. How do I report a bug?
3. How do I request a new feature?
4. Where can I get more information about admin'ing and hacking MUSH?
5. Where can I hear about new releases?
6. Why doesn't %t or space() work right for Pueblo clients?
7. Compiling with the lcc compiler.
8. Patch information in @version and INFO
9. Which signals does PennMUSH understand?

-----------------------------

0. What's the release history since 1.50pl10?

PennMUSH 1.50pl10 is the last patchlevel of PennMUSH developed by Amberyl.
Amberyl handed over the maintenance, development, and support of
PennMUSH to Javelin/Paul (Alan Schwartz) after 1.50pl10.

The first two post-pl10 releases were termed the "dune-1" and "dune-2"
releases (in honor of DuneMUSH, where Alan did most of his development
work). Amberyl and Javelin agreed that it was silly to start a whole
new numbering scheme, so the next patchlevel released was pl11.

Javelin, along with the other two PennMUSH developers, T. Alexander
Popiel and Ralph Melton, made so many internal changes that it was
time for a new numbering scheme, and PennMUSH was advanced to 1.6.x.

Ralph Melton has since retired, and Thorvald Natvig took his place
on the devteam. He rewrote the command parser, and PennMUSH was
advanced to 1.7.0.

Currently, the active development team is Javelin, Talek, Raevnos,
Noltar, and Walker.  The stable version is 1.8.2, and the development
version is 1.8.3.

1. How do I ask for help with a problem?

Email to pennmush-developers@pennmush.org
or visit http://www.pennmush.org/jitterbug/pennmush

When asking for help, please be as specific as you can about the
problem. Include at least the following:
 - Version of PennMUSH including any official patches you've applied
 - Host machine brand (Sun, Dec, etc.), model (Sparcstation, etc.)
 - Operating system version (e.g., Ultrix 4.4)
 - Compiler used to compile (if a compilation problem)
 - A description of the problem: what you think it should be doing that
   it isn't.
 - If things were working, and you recently changed something and they're
   not working now, what did you change?

2. How do I report a bug?

Email to pennmush-bugs@pennmush.org
or visit http://www.pennmush.org/jitterbug/pennmush

Include specific information as described in #3 above. If you know
what's causing the bug, or how to fix it, or if you have a patch for
the bug, send it along. If you don't, and the bug caused a crash with
a core dump, you can send along a stack trace (see #6 if you don't know
how to do this).

Bugs are patched as quickly as possible. Patches for bugs are
emailed to the pennmush@pennmush.org mailing list and to the
pennmush-announce@pennmush.org mailing list (to subscribe, visit
http://www.pennmush.org/mailman/listinfo) and are put on the pennmush
ftp site, in the /pub/PennMUSH/Source directory.

The pennmush-announce list distributes developer announcements
only; the pennmush list also includes discussion.

3. How do I request a new feature?

Email to pennmush-developers@pennmush.org

No promises, but we try to get back to you about the feasibility
of suggestions quickly, and implement them as we can.

If I don't think it belongs in the distribution, I'll ask you to contact
pennhack-volunteers@pennmush.org, a group of volunteer
hackers who will custom-hack for your MUSH. If you're sure that what
you need isn't of general interest, you can write to them directly.

4. Where can I get more information about admin'ing and hacking MUSH?

Read Javelin's God for PennMUSH Gods, loads of info about setting up
a MUSH, hacking source code, daily maintenance, and many tips from
other Gods!

By WWW: http://www.pennmush.org/~alansz/guide.html
By ftp: ftp.pennmush.org, /pub/PennMUSH/Guide

5. Where can I hear about new releases?

New releases of the PennMUSH code are announced on the
PennMUSH and PennMUSH-Announce mailing lists (see above) and
rec.games.mud.{tiny,admin,announce}

Patches are only announced on the mailing lists, and are put on the
ftp site.

6. Why doesn't %t or space() work right for Pueblo clients?

Actually, it does. Pueblo is built around an HTML browser. In HTML,
multiple whitespace is ignored and treated as a single space.  This is
correct behavior. In HTML, if you really want spaces to count as spaces,
you must put your text in 
..
 blocks, e.g. tagwrap(PRE,this
%t has %t tabs %t and    spaces).

7. Compiling with the lcc compiler.

lcc is a freely available C compiler described in the book _A Retargetable
C Compiler: Design and Implementation_, by C.W. Fraser and D.R. Hanson,
and is available from http://www.cs.princeton.edu/software/lcc/. A
precompiled windows version is available. This might be of interest to
people who want to compile Penn on Windows but don't want to download
cygwin or another package with a Windows port of gcc. The lcc package
might be a smaller download, but does lack some tools like sh that
Configure and restart depend on, so you'll have to find them or try to
figure out everything in config.h yourself.

PennMUSH can be compiled using lcc, though it produces a lot of spurious
warnings. After running Configure, make sure that HAS_STRDUP is commented
out of config.h. lcc uses many of gcc's headers and libraries, so that
this function might be detected, but it's never recognized by lcc. We'll
just use our own implementation, as it makes things easier.

8. Patch information in @version and INFO

Files in the pennmush/patches directory are checked to see if they look
like a patch file, and if so, information from this is included in
@version and INFO.

So, what makes it look like a patch file? Two lines.
# Patch name: Whatever
# Patch version: Whichever

Whatever and Whichever are used in the @version report.
The file with this patch information is rebuilt when needed by running
make.

9. Which signals does PennMUSH understand?

PennMUSH understands the following signals, and performs the listed action:

  -HUP   Performs a silent @readcache
  -USR1  Performs an @shutdown/reboot
  -USR2  Performs an @dump
  -INT   Performs an @shutdown
  -TERM  Performs an @shutdown/panic
