empserver/doc
Markus Armbruster 89a06ec2d4 xdump: Make meta-type numbers portable, get rid of meta-type "c"
The xdump field data types are abstract symbols "d", "f", "s" and "c".
However, the abstraction leaks: we dump the enum nsc_type ca_type
values verbatim in meta table field "type", and have symbol table
meta-type map all integer types to "d", and both floating-point types
to "f".  Not a problem for well-behaved clients, since all they do
with the dumped value is referencing table meta-type.  It is a problem
for version-test: since the integer type compatible with an
enumeration type is implementation-defined, the type value of
selectors of enumeration type can vary between compilers.  It also
makes table meta-type a somewhat ugly exception to the rule that a
symbol table maps integers to names 1:1.

Virtual selectors let us seal the abstraction: dump the promoted
ca_type value.

The integer types get all promoted to NSC_LONG.  This takes care of
version-test.

The floating-point types get all promoted to NSC_DOUBLE.  Makes sense.

NSC_STRINGY gets promoted to NSC_STRING.  This changes all field data
types "c" to "s".  Getting rid of "c" is a welcome simplification,
because now the meaning of meta type field "len" no longer depends on
"type", but always means that the array is dumped as that many fields.
We lose string length limit information, though.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2017-08-06 20:09:17 +02:00
..
backups Coding style, comments, spelling... 2006-05-26 18:46:50 +00:00
bug-reports Import of Empire 4.2.12 2003-08-23 12:23:04 +00:00
CHANGES Import of Empire 4.2.12 2003-08-23 12:23:04 +00:00
CHANGES2.3 Import of Empire 4.2.12 2003-08-23 12:23:04 +00:00
CHANGES3.0 Import of Empire 4.2.12 2003-08-23 12:23:04 +00:00
CHANGES4.X Update change log timestamp for 4.3.33 2015-05-20 20:20:40 +02:00
clients-howto doc/clients-howto: Document use of bell character 2013-08-17 17:57:36 +02:00
coding docs/coding: Explain function/struct/union comment conventions 2015-12-05 12:41:15 +01:00
configuration Import of Empire 4.2.12 2003-08-23 12:23:04 +00:00
contributing doc/contributing: Fix git format-patch topic branch example 2015-12-13 10:46:58 +01:00
debugging Update doc/debugging for recent commit a9611a57 2011-07-10 21:17:01 +02:00
econfig doc/econfig: Belatedly drop paragraph on holes in tables 2015-02-01 16:53:00 +01:00
files Update for new build process. 2006-01-21 20:06:16 +00:00
pthreads Import of Empire 4.2.12 2003-08-23 12:23:04 +00:00
README doc/README: Clarify description of file coding 2013-05-25 16:20:10 +02:00
schedule New utility program empsched. 2007-07-13 16:49:13 +00:00
threads Import of Empire 4.2.12 2003-08-23 12:23:04 +00:00
unicode Put URIs and e-mail addresses in <angle brackets> 2013-05-26 09:48:16 +02:00
WACKY_IDEAS Import of Empire 4.2.12 2003-08-23 12:23:04 +00:00
WISH_LIST Import of Empire 4.2.12 2003-08-23 12:23:04 +00:00
xdump xdump: Make meta-type numbers portable, get rid of meta-type "c" 2017-08-06 20:09:17 +02:00

    Documentation is like sex: when it is good, it is very, very good;
    and when it is bad, it is better than nothing.
        --- Dick Brandon

These files should be better than nothing:

files
	What's where.

backups
	Recommendations for how to do backups when running a game.

clients-howto
	Material useful for client writers.

troubleshooting
	Some common problems and solutions.

configuration
	How to turn options on and off, change game parameters, etc...

debugging
	Hints on debugging.

econfig
	Details about the syntax of data/econfig.

bug-reports
	What to do if you find a bug.

threads
	Dave Pare explains how lwp threads work.

pthreads
	Sasha Mikheev's notes on Empire's threading abstraction, and
	its LWP and POSIX threads implementation.

coding
	Guidelines for writing Empire code

contributing
	How to contribute to Empire

unicode
	Design and implementation of Empire's Unicode support.

CHANGES
	Revision history for all the changes that were coded in the Empire2
	project.  A much more readable version of this may be found in
	"info History" (brief) or "info Empire2" (detailed).

CHANGES2.3
	All changes since revision 2.3

CHANGES3.0
	All changes since revision 3.0

CHANGES4.X
	All changes since revision 4.0

WISH_LIST
	things which maybe should be coded sometime.

WACKY_IDEAS
	things which shouldn't be coded except possibly as an option.