]> git.lyx.org Git - lyx.git/blob - src/xtl/README
fix typo that put too many include paths for most people
[lyx.git] / src / xtl / README
1 XTL-1.3.pl11
2 This directory contains the subset of XTL required by LyX.
3 The full distribution includes extensive tests and documentation.
4 If you encounter compiler errors in xtl code when compiling LyX please
5 get a copy of the full distribution and run the regression tests on your
6 system. Report any problems found to the xtl mailing list.
7
8 See:  http://gsd.di.uminho.pt/jop/xtl/
9
10 -------------------------===========================----------------------
11
12
13 The eXternalization Template Library (XTL)
14 ------------------------------------------
15
16 The XTL is a library of template classes and functions for
17 reading/writing structured data to/from an external (platform
18 independent) representation. This process is also usually known as
19 marshalling, serialization or pickling, and is useful both for
20 heterogeneous network programming and portable persistent storage.
21
22 Currently, the XTL supports XDR (RFC1014), GIOP CDR (CORBA) and
23 readable ascii text (write-only) as data formats. Memory buffers
24 are usable as data sources/targets. C file streams, C++
25 iostreams and POSIX iovecs are also planned.
26
27 Besides the usual C data types (basic, structs, pointers, unions), the
28 XTL also supports C++ constructs, such as pointers to base classes and
29 template types, namely, STL containers.
30
31 The XTL does not include any kind of IDL, and as such, the programmer
32 is required to write a "filter" for each data type.  The API is
33 somewhat modeled on the original XDR library by Sun, in that the same
34 filter is used for both reading and writing.
35
36 However, heavy usage of templates makes the API simpler and type safe.
37 Function inlining and careful avoidance of pointers or virtual
38 functions, also make generated code faster. This is a sample
39 benchmark:
40
41         PPRO 200 Mhz + output -> membuffer + size ~= 280 bytes
42
43                        -O16   not opt
44              memcpy   2.8 us   2.2 us
45           *XTL* XDR   9.3 us  47.7 us
46  *XTL* "little" XDR   7.8 us  45.8 us
47          *XTL* GIOP   8.5 us  58.3 us
48             Sun XDR  25.0 us  28.5 us
49
50 For more information and to download a distribution, visit
51 http://gil.di.uminho.pt/~jop/xtl/ . 
52
53 Files under /include and /doc are distributed acording to
54 the GNU LGPL. See COPYING.LIB for licensing details.
55
56 Everything else is public domain.
57
58 Contributors
59 ------------
60 - José Orlando Pereira
61   jop@di.uminho.pt, http://gsd.di.uminho.pt/~jop
62   Departamento de Informatica, Universidade do Minho
63   Campus de Gualtar, 4710-057 Braga, Portugal
64
65 - Asger Alstrup Nielsen
66   alstrup@sophusmedical.dk
67
68 - Allan Rae
69   allan.rae@mailbox.uq.edu.au
70
71  - Angus Leeming
72    a.leeming@ic.ac.uk
73    Department of Biological & Medical Systems, Imperial College, London, UK
74