Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 5e1854624d3bc613bdd0dd13d1ef9ac7 > files > 3422

gap-system-4.4.12-5mdv2010.0.i586.rpm

<html><head><title>[xgap] 2.3 How does it work?</title></head>
<body text="#000000" bgcolor="#ffffff">
[<a href = "C002S000.htm">Up</a>] [<a href ="C002S002.htm">Previous</a>] [<a href ="C002S004.htm">Next</a>] [<a href = "theindex.htm">Index</a>]
<h1>2.3 How does it work?</h1><p>
<p>
XGAP consists of a C program <code>xgap</code> (in the following <code>xgap</code> in
typewriter style refers to this C part) separate from <font face="Gill Sans,Helvetica,Arial">GAP</font>, and of some
libraries written in the <font face="Gill Sans,Helvetica,Arial">GAP</font> language. <code>xgap</code> is started by the
user and launches a <font face="Gill Sans,Helvetica,Arial">GAP</font> job in the background. It then talks 
to this <font face="Gill Sans,Helvetica,Arial">GAP</font> job. Especially it displays all the output which comes from
<font face="Gill Sans,Helvetica,Arial">GAP</font> in the communication window and feeds everything the user types in
this window into the <font face="Gill Sans,Helvetica,Arial">GAP</font> job. 
<p>
But there is also some communication with the <font face="Gill Sans,Helvetica,Arial">GAP</font> job about the graphics
that should be displayed. Because <font face="Gill Sans,Helvetica,Arial">GAP</font> has no concept of putting graphics
on the screen, this part is done by <code>xgap</code>. Therefore there is a protocol
between the <font face="Gill Sans,Helvetica,Arial">GAP</font> part of XGAP running in the <font face="Gill Sans,Helvetica,Arial">GAP</font> session and <code>xgap</code> 
which is embedded in the input/output stream. The user does not notice
this. <code>xgap</code> stores all windows and graphic objects and does all the work
necessary for displaying windows and managing user communication and so on.
<p>
The <font face="Gill Sans,Helvetica,Arial">GAP</font> part of XGAP also stores all graphical information, but in
form of <font face="Gill Sans,Helvetica,Arial">GAP</font> objects. The user can inspect all these structures and use
them in own programs. Changes in these structures are transmitted through
the communications protocol to <code>xgap</code> and are eventually displayed on the
screen. User actions like mouse clicks or keyboard events are caught by
<code>xgap</code> and transmitted to the <font face="Gill Sans,Helvetica,Arial">GAP</font> job via function calls that are
``typed in'' as if the user had typed them. So the library can work on them 
and change the <font face="Gill Sans,Helvetica,Arial">GAP</font> objects accordingly.
<p>
Technically, XGAP is a share package and one of the first commands that
is executed automatically within the <font face="Gill Sans,Helvetica,Arial">GAP</font> session is a
<code>RequirePackage("xgap")</code> call. This reads in the extra XGAP
libraries. They are found in the <code>pkg/xgap/lib</code> subdirectory, normally in the
main <font face="Gill Sans,Helvetica,Arial">GAP</font> directory. The files contain the following:
<p>
<p>
<dl compact>
<dt><code>window.g</code> <dd> basic definitions for the communications protocol
<p>
<dt><code>sheet.g[di]</code> <dd> graphic sheets and their operations 
<p>
<dt><code>color.g[di]</code> <dd> color information
<p>
<dt><code>font.g[di]</code>  <dd> text font information
<p>
<dt><code>menu.g[di]</code>  <dd> menus, dialogs, popups, and user communication
<p>
<dt><code>gobject.g[di]</code><dd> low level graphic objects and their operations
<p>
<dt><code>poset.g[di]</code> <dd> graphic graphs and graphic posets
<p>
<dt><code>ilatgrp.g[di]</code><dd> graphic subgroup lattices
<p>
<dt><code>meataxe.g[di]</code><dd> support to display submodule lattices calculated within
the C MeatAxe
</dl>
<p>
The user normally does not need to know this or the details of it. However, 
it is important to understand that the program <code>xgap</code> is highly machine or
at least operating system dependent. There is no generic way to access
graphics across different platforms up to now. XGAP should run on all
variants of Unix with the X Window System Version 11 Release 5 or
higher. As of now XGAP does not run on Microsoft Windows or MacOS. It is 
also definitely <strong>not</strong> easily ported there, because some important features
that are used within XGAP are missing there (such as pseudo terminals).
There are currently no plans underways to do work in this direction.
However, portations are very welcome! If you would like to put some work
into this, please contact Max Neunh&ouml;ffer (email:
<code>max.neunhoeffer@math.rwth-aachen.de</code>). 
<p>
<p>
[<a href = "C002S000.htm">Up</a>] [<a href ="C002S002.htm">Previous</a>] [<a href ="C002S004.htm">Next</a>] [<a href = "theindex.htm">Index</a>]
<P>
<address>xgap manual<br>Mai 2003
</address></body></html>