gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash/doc/C/usermanual bugreport.xml installati...


From: Rob Savoye
Subject: [Gnash-commit] gnash/doc/C/usermanual bugreport.xml installati...
Date: Tue, 19 Feb 2008 02:06:31 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Rob Savoye <rsavoye>    08/02/19 02:06:31

Modified files:
        doc/C/usermanual: bugreport.xml installation.xml 
                          introduction.xml specification.xml 

Log message:
        Update for 0.8,.2 release, as these were all seriously out of date.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/bugreport.xml?cvsroot=gnash&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/installation.xml?cvsroot=gnash&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/introduction.xml?cvsroot=gnash&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/usermanual/specification.xml?cvsroot=gnash&r1=1.3&r2=1.4

Patches:
Index: bugreport.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/usermanual/bugreport.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- bugreport.xml       16 Aug 2007 14:17:40 -0000      1.4
+++ bugreport.xml       19 Feb 2008 02:06:30 -0000      1.5
@@ -2,12 +2,17 @@
   <title>Reporting Bugs</title>
 
 <para>
-The &app; project relies on the community to use and test the player; feedback 
is critical to any successful project.  Not only does it let us know that 
people use &app;, but it helps us understand the community's needs.  &app; uses 
a bug tracker on <ulink url="http://savannah.gnu.org"; /> to manage these 
reports.
+  The &app; project relies on the community to use and test the
+  player; feedback is critical to any successful project.  Not only
+  does it let us know that people use &app;, but it helps us
+  understand the community's needs.  &app; uses a bug tracker on
+  <ulink url="http://savannah.gnu.org"; /> to manage these reports.
 </para>
 
-  <para>
-When filing a report, please follow the guidelines below. The better your bug 
report is, the easier it will be for the
-    developers to address the issue.
+<para>
+  When filing a report, please follow the guidelines below. The better
+  your bug report is, the easier it will be for the developers to
+  address the issue. 
 </para>
     <orderedlist>
       <listitem><para>
@@ -37,15 +42,25 @@
 
     <para>
       If you are able to replicate the bug in the latest version, 
-      <link linkend="bugstep_search">proceed to the next step</link>.  If you 
cannot replicate the bug with the newer version, the problem may have been 
solved, or the issue may involve your environment
+      <link linkend="bugstep_search">proceed to the next step</link>.
+      If you cannot replicate the bug with the newer version, the
+      problem may have been solved, or the issue may involve your
+      environment 
     </para>
 
     <para>
-To check this, create a fresh build of the version in which you encountered 
the bug.  If you can reproduce the bug with the fresh copy of the original 
version, but cannot with the latest version, this is most likely a resolved bug.
+      To check this, create a fresh build of the version in which you
+      encountered the bug.  If you can reproduce the bug with the
+      fresh copy of the original version, but cannot with the latest
+      version, this is most likely a resolved bug.  
 </para>
 
 <para>
-If you cannot reproduce the bug, it may still be unclear whether the bug is 
related to your environment or a &app; bug.  Try to determine the source of the 
problem.  &app; offers several helpful debugging options in the configure 
stage, and many verbosity options at the command line to help.
+  If you cannot reproduce the bug, it may still be unclear whether the
+  bug is related to your environment or a &app; bug.  Try to determine
+  the source of the problem.  &app; offers several helpful debugging
+  options in the configure stage, and many verbosity options at the
+  command line to help. 
 </para>
   </sect1>
 
@@ -73,50 +88,50 @@
       A good bug report should be precise, explicit, and discrete.
       This means that there should be just one bug per ticket, and
       that a ticket should contain the following information:
-</para>
+    </para>
       <itemizedlist mark="opencircle">
         <listitem>
-<para>
+       <para>
           An overview of the problem;
-</para>
+       </para>
         </listitem> 
         <listitem>
-<para>
+       <para>
           Instructions on how to replicate the bug;
-</para>
+       </para>
         </listitem> 
         <listitem>
-<para>
+       <para>
           A description of what happened when you performed the steps
           to replicate the bug, and what you expected to happen;
-</para>
+       </para>
         </listitem> 
         <listitem>
-<para>
+       <para>
           Your system information: operating system name and version, as
           well as the versions of major <link 
           linkend="codedepend">dependencies</link>;
-</para>
+       </para>
         </listitem> 
         <listitem>
-<para>
+       <para>
           The release number or checkout timestamp for the version of &app;
           where you observe the problem;
-</para>
+       </para>
         </listitem> 
         <listitem>
-<para>
+       <para>
           The file <filename>config.log</filename>, which should be
           attached as a file; and
-</para>
+       </para>
         </listitem> 
         <listitem>
-<para>
+       <para>
           A descriptive title.
-</para>
+       </para>
         </listitem> 
       </itemizedlist>
-<para>
+    <para>
       Include any additional information that you feel might be useful
       to the developers.
     </para>

Index: installation.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/usermanual/installation.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- installation.xml    16 Aug 2007 14:19:19 -0000      1.5
+++ installation.xml    19 Feb 2008 02:06:30 -0000      1.6
@@ -7,179 +7,190 @@
     or <link linkend="gettingsource">installing from source</link>.
   </para>
 
-<sect1 id="requirements">
-<title>Requirements</title>
+  <sect1 id="requirements">
+    <title>Requirements</title>
 
-<para>
-Before downloading and installing &app;, check that your hardware and software 
meet the following requirements.
-</para>
-
-<sect2 id="hardware">
-<title>Hardware Requirements</title>
-
-<para>
-One of the goals of &app; is to make it portable enough to install on small 
devices.  As a result, the hardware requirements are minimal. &app; has even 
run on an ARM9 at 200 MHz with 64 MB of RAM! (It ran without video support in 
this case.)   While firm minimums have not been established, &app; has been 
shown to run successfully with the following:
-</para>
-
-<itemizedlist>
-<listitem>
-<para>
-336 MHz processor
-</para>
-</listitem>
-<listitem>
-<para>
-256 MB RAM
-</para>
-</listitem>
-<listitem>
-<para>
-Video &mdash; &app; will run on anything from a raw frame buffer up to an 
OpenGL-supporting graphics card.
-</para>
-</listitem>
-</itemizedlist>
-
-<para>
-The following table provides a list of the Operating System/CPU combinations 
on which &app; has been shown to run.
-</para>
-
-<table id="tb-os-cpu">
-<title>Build Matrix</title>
-<tgroup cols='2' align='left' colsep='1' rowsep='1'>
-<colspec colname='Operating System' />
-<colspec colname='CPU' />
-<thead>
-<row>
+    <para>
+      Before downloading and installing &app;, check that your
+      hardware and software meet the following requirements.
+    </para>
+    
+    <sect2 id="hardware">
+      <title>Hardware Requirements</title>
+      
+      <para>
+       One of the goals of &app; is to make it portable enough to install on
+       small devices.  As a result, the hardware requirements are
+       minimal. &app; has even run on an ARM9 at 200 MHz with 64 MB of RAM!
+       (It ran without video support in this case.)   While firm minimums
+       have not been established, &app; has been shown to run successfully
+       with the following:
+      </para>
+      
+      <itemizedlist>
+       <listitem>
+         <para>
+           336 MHz processor
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+           256 MB RAM
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+           Video &mdash; &app; will run on anything from a raw frame buffer up 
to
+           an OpenGL-supporting graphics card.
+         </para>
+       </listitem>
+      </itemizedlist>
+      
+      <para>
+       The following table provides a list of the Operating System/CPU
+       combinations on which &app; has been shown to run. 
+      </para>
+      
+      <table id="tb-os-cpu">
+       <title>Build Matrix</title>
+       <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+         <colspec colname='Operating System' />
+         <colspec colname='CPU' />
+         <thead>
+           <row>
   <entry>Render GUI</entry>
   <entry>Virtual Memory</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry>FreeBSD</entry>
-<entry>Alpha AXP, AMD64, i386, Itanium, PC-98, PowerPC, SPARC64 
-</entry>
-</row>
-<row>
-<entry>GNU/Linux 
-</entry>
-<entry>CRIS</entry>
-</row>
-<row>
-<entry>GNU/Linux [OLPC] 
-</entry>
-<entry>Geode GX 
-</entry>
-</row>
-<row>
-<entry>GNU/Linux ALTLinux 
-</entry>
-<entry>i586</entry>
-</row>
-<row>
-<entry>GNU/Linux Arklinux 
-</entry>
-<entry>i586</entry>
-</row>
-<row>
-<entry>GNU/Linux Debian 
-</entry>
-<entry>Alpha AXP, AMD64, ARM, hppa, i386, Itanium, MIPS, PowerPC, IBM zSeries 
(s390), SPARC 
-</entry>
-</row>
-<row>
-<entry>GNU/Linux Fedora core 
-</entry>
-<entry>x86-32, x86-64 
-</entry>
-</row>
-<row>
-<entry>GNU/Linux Gentoo 
-</entry>
-<entry>AMD64, PowerPC, SPARC, x86 
-</entry>
-</row>
-<row>
-<entry>GNU/Linux Gentoo 
-</entry>
-<entry>AMD64, PowerPC, SPARC, x86 
-</entry>
-</row>
-<row>
-<entry>GNU/Linux Maemo 2.1 
-</entry>
-<entry>ARMv5t</entry>
-</row>
-<row>
-<entry>GNU/Linux Mandriva 2007 
-</entry>
-<entry></entry>
-</row>
-<row>
-<entry>GNU/Linux Open Zaurus 
-</entry>
-<entry>ARM 
-</entry>
-</row>
-<row>
-<entry>GNU/Linux OpenSuSE 10 
-</entry>
-<entry>i586, x86-64 
-</entry>
-</row>
-<row>
-<entry>GNU/Linux Red Hat 
-</entry>
-<entry>x86-32, x86-64 
-</entry>
-</row>
-<row>
-<entry>GNU/Linux Ubuntu 
-</entry>
-<entry>x86-64 reported working, also x86-32 and UltraSPARC 
-</entry>
-</row>
-<row>
-<entry>Haiku</entry>
-<entry></entry>
-</row>
-<row>
-<entry>Irix 6.5 
-</entry>
-<entry>MIPS R10K 
-</entry>
-</row>
-<row>
-<entry>MacOS X 
-</entry>
-<entry>PowerPC and x86-32 
-</entry>
-</row>
-<row>
-<entry>NetBSD</entry>
-<entry>many, including VAX
-</entry>
-</row>
-<row>
-<entry>OpenBSD</entry>
-<entry>many, including VAX, OS/2 and eComstation</entry>
-</row>
-<row>
-<entry>Windows</entry>
-<entry>x86-32</entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-
-</sect2>
-
-<sect2 id="software">
-<title>Software Requirements</title>
-
-<para>
-The &appversion; release of &app; has been designed to run on UNIX/Linux 
variants, and has been run on most of the free ones.  However, &app; has 
successfully run on Windows, Darwin (Mac OS X), Irix, Solaris, BeOs, OS/2, and 
Haiku.  &app; has also run on the following 64-bit systems: PowerPC, Itanium, 
UltraSparc, and AMD64.   For now, it is important to be sure that the following 
code, testing, and documentation dependencies are met before installing &app;.  
If you will be downloading &app; with a package manager, these dependencies may 
be solved by the package manager.  Otherwise, you must first verify that each 
of these dependencies are installed on the target system.
-</para>
+           </row>
+         </thead>
+         <tbody>
+           <row>
+             <entry>OpenBSD, FreeBSD, NetBSD</entry>
+             <entry>Alpha AXP, AMD64, i386, Itanium, PC-98, PowerPC, SPARC64 
+             </entry>
+           </row>
+           <row>
+             <entry>ALTLinux</entry>
+             <entry>i586</entry>
+           </row>
+           <row>
+             <entry>Arklinux</entry>
+             <entry>i586</entry>
+           </row>
+           <row>
+             <entry>Debian</entry>
+             <entry>Alpha AXP, AMD64, ARM, hppa, i386, Itanium, MIPS,
+             PowerPC, IBM zSeries (s390), SPARC  
+             </entry>
+           </row>
+           <row>
+             <entry>Fedora</entry>
+             <entry>x86-32, x86-64, Geode GX, Geode LX
+             </entry>
+           </row>
+           <row>
+             <entry>Gentoo</entry>
+             <entry>AMD64, PowerPC, SPARC, x86 
+             </entry>
+           </row>
+           <row>
+             <entry>Maemo 2.1</entry>
+             <entry>i385, ARMv5t</entry>
+           </row>
+           <row>
+             <entry>Scratchbox</entry>
+             <entry>i386, ARMv5t</entry>
+           </row>
+           <row>
+             <entry>Access Linux Platform
+             </entry>
+             <entry>i386, ARMv5t</entry>
+           </row>
+           <row>
+             <entry>Mandriva
+             </entry>
+             <entry>i386</entry>
+           </row>
+           <row>
+             <entry>Open Embedded
+             </entry>
+             <entry>ARM
+             </entry>
+           </row>
+           <row>
+             <entry>YellowDog Linux 6
+             </entry>
+             <entry>PowerPC, PS3
+             </entry>
+           </row>
+           <row>
+             <entry>OpenSuSE 10 
+             </entry>
+             <entry>i586, x86-64 
+             </entry>
+           </row>
+           <row>
+             <entry>Red Hat Enterprise and CentOS
+             </entry>
+             <entry>x86-32, x86-64 
+             </entry>
+           </row>
+           <row>
+             <entry>Ubuntu 
+             </entry>
+             <entry>x86-64, x86-32, PowerPC, UltraSPARC 
+             </entry>
+           </row>
+           <row>
+             <entry>Haiku</entry>
+             <entry>i386</entry>
+           </row>
+           <row>
+             <entry>Irix 6.5 
+             </entry>
+             <entry>MIPS R10K 
+             </entry>
+           </row>
+           <row>
+             <entry>Darwin (MacOS X)
+             </entry>
+             <entry>PowerPC and x86-32 
+             </entry>
+           </row>
+           <row>
+             <entry>NetBSD</entry>
+             <entry>many, including VAX
+             </entry>
+           </row>
+           <row>
+             <entry>OpenBSD</entry>
+             <entry>many, including VAX, OS/2 and eComstation</entry>
+           </row>
+           <row>
+             <entry>Windows</entry>
+             <entry>x86-32</entry>
+           </row>
+         </tbody>
+       </tgroup>
+      </table>
+      
+    </sect2>
+    
+    <sect2 id="software">
+      <title>Software Requirements</title>
+      
+      <para>
+       The &appversion; release of &app; has been designed to run on
+       UNIX/Linux variants, and has been run on most of the free ones.
+       However, &app; has successfully run on Windows, Darwin (Mac OS X),
+       Irix, Solaris, BeOs, OS/2, and Haiku.  &app; has also run on the
+       following 64-bit systems: PowerPC, Itanium, UltraSparc, and AMD64.
+       For now, it is important to be sure that the following code, testing,
+       and documentation dependencies are met before installing &app;.  If
+       you will be downloading &app; with a package manager, these
+       dependencies may be solved by the package manager.  Otherwise, you
+       must first verify that each of these dependencies are installed on the
+       target system.
+      </para>
 
  <sect3 id="codedepend">
        &codedependencies;
@@ -189,19 +200,26 @@
        &testdependencies;
     </sect3>
 
-<sect3 id="docdepend">
+      <sect3 id="docdepend">
        &docdependencies;
     </sect3>
-</sect2>
 
-</sect1>
+    </sect2>
 
-<sect1 id="downloading">
-<title>Downloading &app;</title>
+  </sect1>
 
-<para>
-There are two ways to download &app;: using a package manager or by 
downloading the source code and building it on your system. If possible, it is 
advisable to use a package manager to download &app;, as it will resolve 
dependencies for you.  However, if you want the very latest features, or a 
&app; package is not available for your operating system, it is better to 
download the source code and build &app; locally.
-</para>
+    <sect1 id="downloading">
+      <title>Downloading &app;</title>
+      
+      <para>
+       There are two ways to download &app;: using a package manager or by
+       downloading the source code and building it on your system. If
+       possible, it is advisable to use a package manager to download &app;,
+       as it will resolve dependencies for you.  However, if you want the
+       very latest features, or a &app; package is not available for your
+       operating system, it is better to download the source code and build
+       &app; locally. 
+      </para>
 
   <sect2 id="packagemanager">
     &pkgmanager;
@@ -249,16 +267,18 @@
       experience difficulty accessing the repository.
     </para>
     <para>
-To download via anonymous CVS, first set the
-      environment variable <command>CVS_RSH</command> to 
<command>ssh</command>, then check out the source code.  The example below uses 
the GNU Bourne-Again shell (bash):
-</para>
-
-<screen>
-export CVS_RSH="ssh"
-cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
-</screen>
+           To download via anonymous CVS, first set the
+           environment variable <command>CVS_RSH</command> to
+           <command>ssh</command>, then check out the source code.
+           The example below uses the GNU Bourne-Again shell (bash): 
+         </para>
+         
+         <screen>
+           export CVS_RSH="ssh"
+           cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+         </screen>
 
-<para>
+         <para>
       It is also possible to browse the repository
       <ulink url="http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash";
       type="http" /> on the web.
@@ -279,16 +299,16 @@
     </para>
   </sect3>
 
-</sect2>
+      </sect2>
    
-</sect1>
+    </sect1>
 
-<sect1 id="pre-configuration">
-<title>Pre-Compile Configuration</title>
+    <sect1 id="pre-configuration">
+      <title>Pre-Compile Configuration</title>
 
-&configuration;
+      &configuration;
 
-</sect1>
+    </sect1>
     
     <sect1 id="compiling">
       &building; 

Index: introduction.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/usermanual/introduction.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- introduction.xml    16 Aug 2007 14:21:09 -0000      1.3
+++ introduction.xml    19 Feb 2008 02:06:30 -0000      1.4
@@ -2,202 +2,253 @@
     <title>Introduction</title>
 
  <para>
-      &app; is a free Flash movie player.  It is available as a stand-alone 
application or as a plugin for several popular browsers.
-</para>
+    &app; is a free SWF movie player.  It is available as a
+    stand-alone application or as a plugin for several popular
+    browsers.
+  </para>
 
-<para>
-&app; is based on the excellent work done on the public domain program 
<application>GameSWF</application>, which is a graphics library for games that 
contains the heart of a Flash interpreter.  In December 2005, &app; was forked 
from <application>GameSWF</application> and repackaged in the GNU project 
style.  The objective of &app; is to create an enterprise-quality Flash movie 
player that can be widely deployed.
-</para>
-
-<sect1 id="runs-on">
-<title>What does &app; run on?</title>
-
-<para>
-The list of successful &app; deployments grows every day.  At this time, &app; 
has been found to run on several different UNIX and Linux distributions.  The 
plugin currently works with any browser that uses the NSAPI. This includes:
-</para>
-
-<itemizedlist>
-<listitem>
-<para>Mozilla <ulink url="http://www.mozilla.org"; />
-</para>
-</listitem>
-<listitem>
-<para>Firefox <ulink url="http://www.mozilla.com/en-US/firefox"; />
-</para>
-</listitem>
-<listitem>
-<para>Galeon <ulink url="galeon.sourceforge.net" />
-</para>
-</listitem>
-<listitem>
-<para>Epiphany <ulink url="gnome.org/projects/epiphany" />
-</para>
-</listitem>
-<listitem>
-<para>Konqueror <ulink url="http://www.konqueror.org"; />
-</para>
-</listitem>
-<listitem>
-<para>Opera <ulink url="http://www.opera.com"; />
-</para>
-</listitem>
-<listitem>
-<para>OLPC Web Activity <ulink url="http://www.laptop.org"; />
-</para>
-</listitem>
-</itemizedlist>
+  <para>
+    &app; is based on the excellent work done on the public domain program
+    <application>GameSWF</application>, which is a graphics library for
+    games that contains the heart of a SWF interpreter.  In December
+    2005, &app; was forked from <application>GameSWF</application> and
+    repackaged in the GNU project style.  The objective of &app; is to
+    create an enterprise-quality SWF movie player that can be widely
+    deployed. 
+  </para>
 
-</sect1>
+  <sect1 id="runs-on">
+    <title>What does &app; run on?</title>
+    
+    <para>
+      The list of successful &app; deployments grows every day.  At this
+      time, &app; has been found to run on several different UNIX and Linux
+      distributions.  The plugin currently works with any browser that uses
+      the NSAPI. This includes: 
+    </para>
+    
+    <itemizedlist>
+      <listitem>
+       <para>Mozilla <ulink url="http://www.mozilla.org"; />
+       </para>
+      </listitem>
+      <listitem>
+       <para>Firefox <ulink url="http://www.mozilla.com/en-US/firefox"; />
+       </para>
+      </listitem>
+      <listitem>
+       <para>Galeon <ulink url="galeon.sourceforge.net" />
+       </para>
+      </listitem>
+      <listitem>
+       <para>Epiphany <ulink url="gnome.org/projects/epiphany" />
+       </para>
+      </listitem>
+      <listitem>
+       <para>Konqueror <ulink url="http://www.konqueror.org"; />
+       </para>
+      </listitem>
+      <listitem>
+       <para>Opera <ulink url="http://www.opera.com"; />
+       </para>
+      </listitem>
+      <listitem>
+       <para>OLPC Web Activity <ulink url="http://www.laptop.org"; />
+       </para>
+      </listitem>
+    </itemizedlist>
+    
+  </sect1>
 
        <sect1 id="flashsupport">
          <title>What Versions of Flash are Supported?</title>
 
          <para>
            &app; supports the majority of Flash opcodes up to SWF version
-           7, and a wide sampling of ActionScript classes for SWF version
-           7.   There are plans to work towards greater support for SWF
-           8 and beyond.  AMF support is minimal.
+      7, and a wide sampling of ActionScript 2. Support for SWF v8 and
+      v9 is under development, some sites already work. Support for
+      ActionScript 3 is under development.
+    </para>
+  </sect1>
+  <sect1 id="audience">
+    <title>Audience</title>
+    
+    <para>
+      This manual is primarily focused on developers interested in
+      contributing to or building from the &app; project.  It serves as a
+      detailed reference guide, including a catalog and explanation of all
+      options and features.  This level of detail may make this guide
+      cumbersome for the average user, although advanced users may find it
+      helpful. 
+    </para>
+    
+    <para>
+      Those who are new to &app; will find the <citetitle>&app; User's
+      Guide</citetitle>, currently under development, to be more useful when
+      learning to use &app;. 
          </para>
       </sect1>
-<sect1 id="audience">
-<title>Audience</title>
 
-<para>
-This manual is primarily focused on developers interested in contributing to 
or building from the &app; project.  It serves as a detailed reference guide, 
including a catalog and explanation of all options and features.  This level of 
detail may make this guide cumbersome for the average user, although advanced 
users may find it helpful.
-</para>
-
-<para>
-Those who are new to &app; will find the <citetitle>&app; User's 
Guide</citetitle>, currently under development, to be more useful when learning 
to use &app;.
-</para>
-</sect1>
-
-<sect1 id="guide-conventions">
-<title>Guide Conventions</title>
-
-<para>
-This guide makes use of the following fairly standard typefaces, highlighting, 
and language usage:
-</para>
-
-<variablelist>
-<varlistentry>
-<term><application>application</application></term>
-<listitem>
-<para>
-The typeface above will be used whenever an application, such as 
<application>Firefox</application> or 
<application>OpenOffice.org</application>, is mentioned.
-</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><command>command</command></term>
-<listitem>
-<para>
-The typeface above will be used whenever the text instructs a user to enter a 
command at a shell prompt in UNIX/Linux, such as <command>ls</command>.
-</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><computeroutput>computeroutput</computeroutput></term>
-<listitem>
-<para>
-This is the typeface used to indicate information produced on 
<computeroutput>stdout</computeroutput> by the computer.  This include error 
messages and prompts.
-</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><filename>filename</filename></term>
-<listitem>
-<para>
-This typeface indicates that the text is the name (and possibly the path) of a 
specific file on the system in question.  For example, 
<filename>/etc/hosts</filename> would appear in this typeface.
-</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><guibutton>guibutton</guibutton></term>
-<listitem>
-<para>
-This formatting indicates a button on a Graphical User Interface (GUI).  If 
this formatting appears, look for a button with the same text on the GUI of the 
&app; player; the button itself may look slightly different.
-</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><guimenu>guimenu</guimenu></term>
-<listitem>
-<para>
-This typeface indicates the topmost menu item in a GUI.  For example, in many 
applications the <guimenu>File</guimenu> menu item is a top=level menu item.
-</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><guimenuitem>guimenuitem</guimenuitem></term>
-<listitem>
-<para>
-This typeface indicates a sub-menu item in a GUI.  For example, in many 
applications the <guimenuitem>Save As</guimenuitem> menu item is a sub-menu 
item.
-</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><guilabel>guitext</guilabel></term>
-<listitem>
-<para>
-This typeface indicates a text string on the GUI.  This is generally a text 
string that appears on the GUI that is not a button or menuitem.
-</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><keycap>key</keycap></term>
-<listitem>
-<para>
-This typeface indicates a specific key on the keyboard.  For example, the 
<keycap>Ctrl</keycap> key appears in this typeface.
-</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><keycombo><keycap>key</keycap><keycap>combination</keycap></keycombo></term>
-<listitem>
-<para>
-This formatting indicates a set of keys to be pressed at the same time.  A 
familiar key combination is 
<keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Delete</keycap></keycombo>.
-</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><replaceable>&lt;replaceable&gt;</replaceable></term>
-<listitem>
-<para>
-Whenever a general term is included in an example as a placeholder, it will be 
signaled by this formatting.  This formatting will usually appear inside other 
formatting.  For example, 
<filename>/home/<replaceable>&lt;username&gt;</replaceable></filename> 
indicates the home directory of a user, whose actual username would be 
substituted in for <replaceable>&lt;username&gt;</replaceable>.
-</para>
-</listitem>
-</varlistentry>
-<varlistentry>
-<term><userinput>User input</userinput></term>
-<listitem>
-<para>
-This typeface indicates anything that the user must enter, whether that is at 
a shell prompt or in response to a GUI prompt. 
-</para>
-</listitem>
-</varlistentry>
-</variablelist>
-
-</sect1>
-
-<sect1 id="Acknowledgments">
-<title>Acknowledgments</title>
-
-<para>
-The first version of this guide was written by Rob Savoye.  If not for his 
tireless efforts, this book - and this project - would never have come this far.
-</para>
-
-<para>
-John Steinhart has also been dedicated to the project from the beginning. I 
have shamelessly plagiarized one of his early announcement emails in the early 
part of this chapter.
-</para>
-
-<para>
-Ann Barcomb was instrumental in taking this guide from the 0.3.0 to the 0.4.0 
version, incorporating the many changes that came with &app; version 0.8.0.
-</para>
-
-<para>
-Finally, thanks to all of the &app; developers I haven't mentioned for all 
their hard work, and for answering my unending questions.
-</para>
-</sect1>
+  <sect1 id="guide-conventions">
+    <title>Guide Conventions</title>
+    
+    <para>
+      This guide makes use of the following fairly standard typefaces,
+      highlighting, and language usage: 
+    </para>
+    
+    <variablelist>
+      <varlistentry>
+       <term><application>application</application></term>
+       <listitem>
+         <para>
+           The typeface above will be used whenever an application, such as
+           <application>Firefox</application> or
+           <application>OpenOffice.org</application>, is mentioned. 
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><command>command</command></term>
+       <listitem>
+         <para>
+           The typeface above will be used whenever the text instructs a user 
to
+           enter a command at a shell prompt in UNIX/Linux, such as
+           <command>ls</command>. 
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><computeroutput>computeroutput</computeroutput></term>
+       <listitem>
+         <para>
+           This is the typeface used to indicate information produced on
+           <computeroutput>stdout</computeroutput> by the computer.  This 
include
+           error messages and prompts. 
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><filename>filename</filename></term>
+       <listitem>
+         <para>
+           This typeface indicates that the text is the name (and possibly the
+           path) of a specific file on the system in question.  For example,
+           <filename>/etc/hosts</filename> would appear in this typeface. 
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><guibutton>guibutton</guibutton></term>
+       <listitem>
+         <para>
+           This formatting indicates a button on a Graphical User Interface
+           (GUI).  If this formatting appears, look for a button with the same
+           text on the GUI of the &app; player; the button itself may look
+           slightly different. 
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><guimenu>guimenu</guimenu></term>
+       <listitem>
+         <para>
+           This typeface indicates the topmost menu item in a GUI.  For 
example,
+           in many applications the <guimenu>File</guimenu> menu item is a
+           top=level menu item. 
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><guimenuitem>guimenuitem</guimenuitem></term>
+       <listitem>
+         <para>
+           This typeface indicates a sub-menu item in a GUI.  For example, in
+           many applications the <guimenuitem>Save As</guimenuitem> menu item 
is
+           a sub-menu item. 
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><guilabel>guitext</guilabel></term>
+       <listitem>
+         <para>
+           This typeface indicates a text string on the GUI.  This is 
generally a
+           text string that appears on the GUI that is not a button or 
menuitem. 
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><keycap>key</keycap></term>
+       <listitem>
+         <para>
+           This typeface indicates a specific key on the keyboard.  For 
example,
+           the <keycap>Ctrl</keycap> key appears in this typeface. 
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       
<term><keycombo><keycap>key</keycap><keycap>combination</keycap></keycombo></term>
+       <listitem>
+         <para>
+           This formatting indicates a set of keys to be pressed at the same
+           time.  A familiar key combination is
+           
<keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Delete</keycap></keycombo>.
 
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><replaceable>&lt;replaceable&gt;</replaceable></term>
+       <listitem>
+         <para>
+           Whenever a general term is included in an example as a placeholder, 
it
+           will be signaled by this formatting.  This formatting will usually
+           appear inside other formatting.  For example,
+           
<filename>/home/<replaceable>&lt;username&gt;</replaceable></filename>
+           indicates the home directory of a user, whose actual username would 
be
+           substituted in for <replaceable>&lt;username&gt;</replaceable>. 
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term><userinput>User input</userinput></term>
+       <listitem>
+         <para>
+           This typeface indicates anything that the user must enter, whether
+           that is at a shell prompt or in response to a GUI prompt.  
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+    
+  </sect1>
+  
+  <sect1 id="Acknowledgments">
+    <title>Acknowledgments</title>
+    
+    <para>
+      The first version of this guide was written by Rob Savoye.  If not for
+      his tireless efforts, this book - and this project - would never have
+      come this far. 
+    </para>
+    
+    <para>
+      John Steinhart has also been supportive of the project from the
+      beginning. I have shamelessly plagiarized one of his early
+      announcement emails in the early part of this chapter. 
+    </para>
+    
+    <para>
+      Ann Barcomb was instrumental in taking this guide from the 0.3.0 to
+      the 0.4.0 version, incorporating the many changes that came with &app;
+      version 0.8.0. 
+    </para>
+    
+    <para>
+      Finally, thanks to all of the &app; developers I haven't mentioned for
+      all their hard work, and for answering my unending questions. 
+    </para>
+  </sect1>
 
 
 </chapter>

Index: specification.xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/usermanual/specification.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- specification.xml   16 Aug 2007 16:58:50 -0000      1.3
+++ specification.xml   19 Feb 2008 02:06:31 -0000      1.4
@@ -1,318 +1,443 @@
 <chapter id="specification">
-<title>Technical Specifications</title>
+  <title>Technical Specifications</title>
 
-<para>
-The information in this chapter may change quickly.  For the most current 
information about the following subjects, be sure the check the Developer's 
Wiki at <ulink url="http://www.gnashdev.org/wiki/index.php/Main_Page"; />.
-</para>
-
-<sect1 id="spec-actionscript">
-<title>&AS;</title>
-
-<para>
-As stated in the section <xref linkend="flashsupport" />, &app; has 
implemented about 80% of &AS; v. 2.0, and has begun implementing &AS; v. 3.0.  
&app; supports the majority of Flash opcodes up to SWF version 7, and a wide 
sampling of &AS; classes for SWF version 7.
-</para>
-
-<para>
-The following table indicates how fully various &AS; classes have been 
implemented:
-</para>
-
-<table frame='all'>
-<title>&AS; Classes</title>
-<tgroup cols='2' align='left' colsep='1' rowsep='1'>
-<colspec colname='Class'/>
-<colspec colname='Status'/>
-<thead>
-<row>
+  <para>
+    The information in this chapter may change quickly.  For the most
+    current information about the following subjects, be sure the check
+    the Developer's Wiki at <ulink
+    url="http://www.gnashdev.org/wiki/index.php/Main_Page"; />. 
+  </para>
+  
+  <sect1 id="spec-actionscript">
+    <title>&AS;</title>
+    
+    <para>
+      As stated in the section <xref linkend="flashsupport" />, &app; has
+      implemented about 80% of &AS; v. 2.0, and has begun implementing &AS;
+      v. 3.0.  &app; supports the majority of Flash opcodes up to SWF
+      version 9, and a wide sampling of &AS; classes for SWF version 8. 
+    </para>
+    
+    <para>
+      The following table indicates how fully various &AS; classes have been
+      implemented: 
+    </para>
+    
+    <table frame='all'>
+      <title>&AS; Classes</title>
+      <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+       <colspec colname='Class'/>
+       <colspec colname='Status'/>
+       <thead>
+         <row>
   <entry>Class</entry>
   <entry>Status</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry>Actionscript/Date</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/Function</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/MovieClip</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/MovieClipLoader</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/Object</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/Sound</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/String</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/XMLNode</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/XMLSocket</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/_global</entry>
-<entry>Partially Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/Array</entry>
-<entry>Partially Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/LocalConnection</entry>
-<entry>Partially Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/NetConnection</entry>
-<entry>Partially Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/NetStream</entry>
-<entry>Partially Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/TextField</entry>
-<entry>Partially Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/XML</entry>
-<entry>Partially Implemented</entry>
-</row>
-<row>
-<entry>Actionscript/Boolean</entry>
-<entry>Unimplemented</entry>
-</row>
-<row>
-<entry>Actionscript/Error</entry>
-<entry>Unimplemented</entry>
-</row>
-<row>
-<entry>Actionscript/LoadVars</entry>
-<entry>Unimplemented</entry>
-</row>
-<row>
-<entry>Actionscript/Number</entry>
-<entry>Unimplemented</entry>
-</row>
-<row>
-<entry>Actionscript/Selection</entry>
-<entry>Unimplemented</entry>
-</row>
-<row>
-<entry>Actionscript/TextFormat</entry>
-<entry>Unimplemented</entry>
-</row>
-<row>
-<entry>Actionscript/Unknown</entry>
-<entry>Unimplemented</entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-
-<para>
-The next table indicates which opcodes have been implemented:
-</para>
-
-<table frame='all'>
-<title>Opcodes</title>
-<tgroup cols='2' align='left' colsep='1' rowsep='1'>
-<colspec colname='Opcode'/>
-<colspec colname='Status'/>
-<thead>
-<row>
+         </row>
+       </thead>
+       <tbody>
+         <row>
+           <entry>Actionscript/Date</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/Function</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/MovieClip</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/MovieClipLoader</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/Object</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/Sound</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/String</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/XMLNode</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/XMLSocket</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/_global</entry>
+           <entry>Partially Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/Array</entry>
+           <entry>Partially Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/LocalConnection</entry>
+           <entry>Partially Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/NetConnection</entry>
+           <entry>Partially Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/NetStream</entry>
+           <entry>Partially Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/TextField</entry>
+           <entry>Partially Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/XML</entry>
+           <entry>Partially Implemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/Boolean</entry>
+           <entry>Unimplemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/Error</entry>
+           <entry>Unimplemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/LoadVars</entry>
+           <entry>Unimplemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/Number</entry>
+           <entry>Unimplemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/Selection</entry>
+           <entry>Unimplemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/TextFormat</entry>
+           <entry>Unimplemented</entry>
+         </row>
+         <row>
+           <entry>Actionscript/Unknown</entry>
+           <entry>Unimplemented</entry>
+         </row>
+       </tbody>
+      </tgroup>
+    </table>
+    
+    <para>
+      The next table indicates which opcodes have been implemented:
+    </para>
+    
+    <table frame='all'>
+      <title>Opcodes</title>
+      <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+       <colspec colname='Opcode'/>
+       <colspec colname='Status'/>
+       <thead>
+         <row>
   <entry>Opcode</entry>
   <entry>Status</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry>0x43 declare_obj</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>0x2B cast</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>0x3B delete2 - SWF::ACTION_DELETE</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>0x53 new_method</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>0x55 enum_object</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>0x3A delete - SWF::ACTION_DELETEVAR</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>0x69 Extends - SWF::ACTION_EXTENDS</entry>
-<entry>Implemented</entry>
-</row>
-<row>
-<entry>0x54 instance_of</entry>
-<entry>Partially Implemented</entry>
-</row>
-<row>
-<entry>0x2A Throw</entry>
-<entry>Unimplemented</entry>
-</row>
-<row>
-<entry>0x2C Implements</entry>
-<entry>Unimplemented</entry>
-</row>
-<row>
-<entry>0x8F Try</entry>
-<entry>Unimplemented</entry>
-</row>
-<row>
-<entry>0x31 md length</entry>
-<entry>Unimplemented</entry>
-</row>
-<row>
-<entry>0x35 md substring</entry>
-<entry>Unimplemented</entry>
-</row>
-<row>
-<entry>0x37 md chr</entry>
-<entry>Unimplemented</entry>
-</row>
-<row>
-<entry>0x45 get target</entry>
-<entry>Unimplemented</entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-
-</sect1>
-
-<sect1 id="spec-memory">
-<title>Memory Management</title>
-
-<para>
-One of the new features of &app; &appversion; is the garbage collector.  The 
garbage collector manages complex &AS; variables, which are the only ones that 
are shared by references.  In &app;, these are <command>as_object</command> 
class instances created by &AS; (i.e. not those created by playhead control: 
<command>placeobject</command>/<command>removeobject</command>).
-</para>
-
-<para>
-Collected objects are those allocated due to &AS; explicit or implicit calls.  
Explicit all are any user-defined statements that allocate new objects, such as 
arrays, Objects, or script-created movieclips.  Implicit calls are the built-in 
functions that can be deleted by arbitrary user calls.
-</para>
-
-<para>
-Any object that is a candidate for garbage collecting is stored in a list 
owned by the collector.  This list is filled by an executing action context 
whenever a collectible object is allocated on the heap.
-</para>
-
-<para>
-The garbage collector starts at the very end of an execution context, rather 
than using a threshold to trigger it.  At this point, the virtual machine is in 
a "stable" state; any still-reachable object has its roots in one of the 
currently live character instances (stage characters).
-</para>
-
-<para>
-The collector is a conservative collector.  Any object on the collectibles 
list is marked as <guilabel>UNREACHABLE</guilabel>, an iterative scan starting 
from the roots marks any still-reachable object, and a final purge releases all 
still-<guilabel>UNREACHABLE</guilabel> resources.
-</para>
-
-<para>
-This garbage collector has reduced the memory footprint of &app;.  However, 
the most current, available test data indicated the following runtime memory 
footprint:
-</para>
-
-<table frame='all'>
-<title>Memory Footprint</title>
-<tgroup cols='4' align='left' colsep='1' rowsep='1'>
-<colspec colname='Render GUI' />
-<colspec colname='Virtual Memory' />
-<colspec colname='Resident Set Size (physical RAM' />
-<colspec colname='Shared Memory (code size)' />
-<thead>
-<row>
+         </row>
+       </thead>
+       <tbody>
+         <row>
+           <entry>0x43 declare_obj</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>0x2B cast</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>0x3B delete2 - SWF::ACTION_DELETE</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>0x53 new_method</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>0x55 enum_object</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>0x3A delete - SWF::ACTION_DELETEVAR</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>0x69 Extends - SWF::ACTION_EXTENDS</entry>
+           <entry>Implemented</entry>
+         </row>
+         <row>
+           <entry>0x54 instance_of</entry>
+           <entry>Partially Implemented</entry>
+         </row>
+         <row>
+           <entry>0x2A Throw</entry>
+           <entry>Unimplemented</entry>
+         </row>
+         <row>
+           <entry>0x2C Implements</entry>
+           <entry>Unimplemented</entry>
+         </row>
+         <row>
+           <entry>0x8F Try</entry>
+           <entry>Unimplemented</entry>
+         </row>
+         <row>
+           <entry>0x31 md length</entry>
+           <entry>Unimplemented</entry>
+         </row>
+         <row>
+           <entry>0x35 md substring</entry>
+           <entry>Unimplemented</entry>
+         </row>
+         <row>
+           <entry>0x37 md chr</entry>
+           <entry>Unimplemented</entry>
+         </row>
+         <row>
+           <entry>0x45 get target</entry>
+           <entry>Unimplemented</entry>
+         </row>
+       </tbody>
+      </tgroup>
+    </table>
+    
+  </sect1>
+  
+  <sect1 id="spec-memory">
+    <title>Memory Management</title>
+    
+    <para>
+      One of the new features of &app; &appversion; is the garbage
+      collector.  The garbage collector manages complex &AS; variables,
+      which are the only ones that are shared by references.  In &app;,
+      these are <command>as_object</command> class instances created by &AS;
+      (i.e. not those created by playhead control:
+      <command>placeobject</command>/<command>removeobject</command>). 
+    </para>
+    
+    <para>
+      Collected objects are those allocated due to &AS; explicit or implicit
+      calls.  Explicit all are any user-defined statements that allocate new
+      objects, such as arrays, Objects, or script-created movieclips.
+      Implicit calls are the built-in functions that can be deleted by
+      arbitrary user calls. 
+    </para>
+    
+    <para>
+      Any object that is a candidate for garbage collecting is stored in a
+      list owned by the collector.  This list is filled by an executing
+      action context whenever a collectible object is allocated on the
+      heap. 
+    </para>
+    
+    <para>
+      The garbage collector starts at the very end of an execution context,
+      rather than using a threshold to trigger it.  At this point, the
+      virtual machine is in a "stable" state; any still-reachable object has
+      its roots in one of the currently live character instances (stage
+      characters). 
+    </para>
+    
+    <para>
+      The collector is a conservative collector.  Any object on the
+      collectibles list is marked as <guilabel>UNREACHABLE</guilabel>, an
+      iterative scan starting from the roots marks any still-reachable
+      object, and a final purge releases all
+      still-<guilabel>UNREACHABLE</guilabel> resources. 
+    </para>
+    
+    <para>
+      This garbage collector has reduced the memory footprint of &app;.
+      However, the most current, available test data indicated the following
+      runtime memory footprint: 
+    </para>
+    
+    <!--
+       <table frame='all'>
+       <title>Memory Footprint</title>
+       <tgroup cols='4' align='left' colsep='1' rowsep='1'>
+       <colspec colname='Render GUI' />
+       <colspec colname='Virtual Memory' />
+       <colspec colname='Resident Set Size (physical RAM' />
+       <colspec colname='Shared Memory (code size)' />
+       <thead>
+       <row>
   <entry>Render GUI</entry>
   <entry>Virtual Memory</entry>
   <entry>Resident Set Size (physical RAM</entry>
   <entry>Shared Memory (code size)</entry>
-</row>
-</thead>
-<tbody>
-<row>
+       </row>
+       </thead>
+       <tbody>
+       <row>
   <entry>agg-gtk</entry>
   <entry>33372 KB</entry>
   <entry>14 MB</entry>
   <entry>8948 KB</entry>
-</row>
-<row>
+       </row>
+       <row>
   <entry>agg-sdl</entry>
   <entry>26564 KB</entry>
   <entry>9396 KB</entry>
   <entry>5124 KB</entry>
-</row>
-<row>
+       </row>
+       <row>
   <entry>agg-fltk</entry>
   <entry>24556 KB</entry>
   <entry>8992 KB</entry>
   <entry>4220 KB</entry>
-</row>
-<row>
+       </row>
+       <row>
   <entry>cairo-fltk</entry>
   <entry>184 MB</entry>
   <entry>128 MB</entry>
   <entry>4284 KB</entry>
-</row>
-<row>
+       </row>
+       <row>
   <entry>cairo-gtk</entry>
   <entry>192 MB</entry>
   <entry>133 MB</entry>
   <entry>8000 KB</entry>
-</row>
-<row>
+       </row>
+       <row>
   <entry>cairo-sdl</entry>
   <entry>187 MB</entry>
   <entry>129 MB </entry>
   <entry>5256 KB</entry>
-</row>
-<row>
+       </row>
+       <row>
   <entry>opengl-gtk </entry>
   <entry>62620 KB</entry>
   <entry>15 MB</entry>
   <entry>9336 KB</entry>
-</row>
-<row>
+       </row>
+       <row>
   <entry>opengl-sdl </entry>
   <entry>54932 KB</entry>
   <entry>10 MB</entry>
   <entry>5324 KB</entry>
-</row>
-</tbody>
-</tgroup>
-</table>
-
-</sect1>
-
-<sect1 id="spec-security">
-<title>Security</title>
+       </row>
+       </tbody>
+       </tgroup>
+       </table>
+    -->
+    
+  </sect1>
+  
+  <sect1 id="spec-security">
+    <title>Security</title>
+    
+    <para>
+      Many Flash implementations contain potential security exploits that
+      could compromise a viewer's system.  With &app;, an end-user has the
+      ability to see "what's going on" &mdash; what types of data the
+      application accesses, where it is found, and how it is used. Many
+      known Flash exploits are included in the &app; test suite that is
+      used to check whether a release is ready for the public. The &app;
+      developers are also in the process of a security review, developing a
+      security layer that will protect an end-user, no matter what operating
+      system they use. 
+    </para>
+    
+    <para>
+      One early security feature is the blacklist/whitelist.  Flash movies
+      running in a browser can make outgoing network connections. This can
+      be used, for example, to compromise a network device inside a
+      company firewall via a Flash movie running on an employee's
+      browser. &app; allows you to blacklist hosts that you know are
+      insecure, or to whitelist hosts you know are secure, by editing a
+      configuration file.
+    </para>
+    
+    <sect2 id="lso">
+      <title>Local Shared Objects</title>
+      
+      <para>
+       SWF movies support a form of persistant storage called Local
+       Shared Objects. These are stored in the subdirectories of one's
+       <emphasis>~/.macromedia</emphasis> configuration. These files
+       are comonly called &quot;Flash Cookies&quot;, as they don't get
+       deleted when the SWF movie that created or writes data to them
+       stops executing. These files often store things like game
+       scores. 
+      </para>
+      
+      <para>
+       Till recently, what was contained in these files wasn't widely
+       known. There are several LSO file utilities floating around on
+       the Web. Gnash has it's own <emphasis>soldumper</emphasis>
+       program that lets one find and dump the contents of these
+       files. As of yet, I haven't discovered any nasty privacy issues
+       yet, but as Gnash's SharedObject support is new, I may have just
+       been lucky.
+      </para>
+      
+      <para>
+       An LSO file uses a <emphasis>.sol</emphasis>suffix, and is
+       stored in binary, big endian format. While one can look at the
+       data in any binary editor or hex dumper, it's easier to use
+       soldumper, which knows how to decode all the objects. The data
+       is stored in AMF format, a simple data interhange formats used
+       in several other places in SWF.
+      </para>
+      
+      <para>
+       The one security setting Gnash supports is the
+       <emphasis>SOLReadOnly</emphasis> setting for your $HOME/.gnashrc
+       file. This makes Gnash never write to a .sol file, it only reads
+       them. You can also set <emphasis>SOLSafeDir</emphasis> to a safe
+       subdirectory,or even remove it later, although most people
+       willwant to set this path to the default one created bythe other
+       SWF player.
+      </para>
+      
+    </sect2>
+    
+    <sect2 id="lc">
+      <title>Local Connections</title>
+      
+      <para>
+       SWF movies support a form of data interchange between running
+       SWF movies called LocalConnection. This uses a shared memory
+       segment to exchange AMF objects. While the specification claim
+       an application has to register as a Listener, it turns out in
+       reality this isn't required. Even YouTube violates this
+       requirement. While one would think that data written to this
+       memory segment would go away when the SWF movies are done
+       playing, but they are persistant, and on some systems, the data
+       even survives a reboot. Thank you Solaris...
+      </para>
+      
+      <para>
+       The Gnash utility <emphasis>dumpshm</emphasis> can be used to do
+       several things with these shared memory segments. This utility
+       can find the shared memory segment left by using other SWF
+       players to see what has been left. it can then dump the contents
+       of the shared mempory segment either by decoding the AMF objects
+       and printing the values, or by dumping the raw file to disk
+       where you can analysze it with any other program you wish. If
+       you run dumpshm repeatedly, you can even do a crude packet
+       sniffing between two SWF movies playing.
+      </para>
+      
+      <para>
+       The only current security related option for this is
+       <emphasis>LocalConnection</emphasis>. This just disables all
+       communication with other SWF movies. Work is in progress on
+       adding a tracing ability to Gnash.
+      </para>
 
-<para>
-Many Flash implementations contain potential security exploits that could 
compromise a viewer's system.  With &app;, an end-user has the ability to see 
"what's going on" &mdash; what types of data the application accesses, where it 
is found, and how it is used.  Many known Flash exploits are included in the 
&app; test suite that is used to check whether a release is ready for the 
public.  The &app; developers are also in the process of a security review, 
developing a security layer that will protect an end-user, no matter what 
operating system they use.
-</para>
-
-<para>
-One early security feature is the blacklist/whitelist.  Flash movies running 
in a browser can make outgoing network connections. This can be used, for 
example, to compromise a network device inside a company firewall via a Flash 
movie running on an employee's browser. &app; allows you to blacklist hosts 
that you know are insecure, or to whitelist hosts you know are secure, by 
editing a configuration file.
-</para>
+    </sect2>
 
 </sect1>
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]