<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html> <head> <title>Documentation</title> </head> <body bgcolor="#FFFFFF"> <script language="JavaScript" type="text/javascript"><!-- Allowhover = (((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 3 )) || ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4 ))); function Imagepreload(img) { var a=new Image(); a.src=img; return a; } if(Allowhover) { Homen=Imagepreload('images/HomeButton.gif'); Homeh=Imagepreload('images/HomeButton1.gif'); Aboutn=Imagepreload('images/AboutButton.gif'); Abouth=Imagepreload('images/AboutButton1.gif'); Supportn=Imagepreload('images/SupportButton.gif'); Supporth=Imagepreload('images/SupportButton1.gif'); Getn=Imagepreload('images/GetButton.gif'); Geth=Imagepreload('images/GetButton1.gif'); Docn=Imagepreload('images/DocButton.gif'); Doch=Imagepreload('images/DocButton1.gif'); } // --></script> <table border="0"> <tr> <td valign="top"><table border="0" cellspacing="0" cellpadding="0"> <tr> <td><a href="http://www.polyml.org/" onmouseover="if(Allowhover) document['Home'].src=Homeh.src; return true" onmouseout="if(Allowhover) document['Home'].src=Homen.src; return true"><img name="Home" src="images/HomeButton.gif" alt="Poly/ML Home" border="0" WIDTH="113" HEIGHT="43"></a></td> </tr> <tr> <td><a href="http://www.polyml.org/FAQ.html" onmouseover="if(Allowhover) document['About'].src=Abouth.src; return true" onmouseout="if(Allowhover) document['About'].src=Aboutn.src; return true"><img name="About" src="images/AboutButton.gif" alt="About Poly/ML" border="0" WIDTH="113" HEIGHT="43"></a></td> </tr> <tr> <td><a href="http://www.polyml.org/support.html" onmouseover="if(Allowhover) document['Support'].src=Supporth.src; return true" onmouseout="if(Allowhover) document['Support'].src=Supportn.src; return true"><img name="Support" src="images/SupportButton.gif" alt="Support for Poly/ML" border="0" WIDTH="113" HEIGHT="43"></a></td> </tr> <tr> <td><a href="index.html" onmouseover="if(Allowhover) document['Doc'].src=Doch.src; return true" onmouseout="if(Allowhover) document['Doc'].src=Docn.src; return true"><img name="Doc" src="images/DocButton.gif" alt="Documentation" border="0" WIDTH="113" HEIGHT="43"></a></td> </tr> <tr> <td><a href="http://www.polyml.org/download.html" onmouseover="if(Allowhover) document['Get'].src=Geth.src; return true" onmouseout="if(Allowhover) document['Get'].src=Getn.src; return true"><img name="Get" src="images/GetButton.gif" alt="Get Poly/ML" border="0" WIDTH="113" HEIGHT="43"></a></td> </tr> </table> </td> <td valign="top"><h2><font face="Arial"><strong>Documentation for Poly/ML</strong></font></h2> <p><font face="Arial"><a href="docs/ReleaseNotes.html"><strong>Release Notes for Version 5.3 and earlier releases.</strong></a></font></p> <p><font face="Arial"><a href="docs/ReleaseNotes.html#Version5_0"><strong>Version 5 Release Notes.<br> </strong></a>Includes information on how to build stand-alone applications and the command line arguments for the Poly/ML compiler and run-time system.</font></p> <p><font face="Arial"><strong><a href="docs/UsingIndex.html">Using Poly/ML</a></strong><br> This describes how to run Poly/ML and also a number of the extensions to Poly/ML such as the "make" system and the Process structure. It was written for version 3 of Poly/ML so some sections of it have been superseded by the Standard Basis Library. Other parts refer to features, such as the persistent store, that have been removed or significantly changed in version 5.</font></p> <p><font face="Arial"><strong><a href="docs/CInterface.html">Poly/ML Interface to the C Programming Language</a></strong><br> Poly/ML includes a CInterface structure which allows dynamic linking to libraries written in languages such as C or Fortran. This document describes the interface.</font></p> <p><font face="Arial"><strong><a href="docs/Motif.html">Poly/ML for Motif Quick Reference Manual</a></strong><br> An introduction to the Motif interface for Poly/ML together with a simple example program.</font></p> <p><font face="Arial"><strong><a href="docs/XRef.pdf">Poly/ML for X Reference Manual (PDF)</a></strong><br> A reference manual for Xlib in Poly/ML.</font></p> <p><font face="Arial"><a href="docs/Windows.html"><strong>Windows Programming in Poly/ML</strong></a><br> A short tutorial on programming Windows in Poly/ML.</font></p> <p><font face="Arial"><a href="docs/Winref/Reference.html"><strong>Windows Interface Reference</strong></a><br> The reference for the Windows interface.</font></p> <h3><strong><font face="Arial">Short Documents.</font></strong></h3> <p><font face="Arial"><a href="docs/StandBasis.html"><strong>The Standard Basis</strong></a><br> A short overview of the Standard Basis with specific reference to the implementation in Poly/ML .</font></p> <p><font face="Arial"><a href="docs/Threads.html"><strong>The Thread Structure </strong></a><br> A description of the Thread structure that enables programs to create multiple threads, synchronise and communicate between them.</font></p> <p><font face="Arial"><a href="docs/SaveState.html"><strong>The SaveState Structure</strong></a><br> The PolyML.SaveState structure contains functions to save the current state and reload it another session.</font></p> <p><font face="Arial"><a href="docs/Signal.html"><strong>The Signal structure</strong></a><br> Although the <tt>Posix</tt> structure in the Standard Basis Library provides functions which send signals to a process there is no standard method of handling signals. The <tt>Signal</tt> structure has been added to Poly/ML to allow signals to be blocked or handled.</font></p> <p><font face="Arial"><a href="docs/Debugging.html"><strong>Source Level Debugging in Poly/ML</strong></a><br> A source level debugger was added in version 4.1. This document explains how to use it to debug an ML program.</font></p> <p><font face="Arial"><a href="docs/PrettyPrint.html"><strong>Pretty Printing</strong></a><br> The pretty printing mechanism changed in version 5.3. This document describes the new PolyML.addPrettyPrinter function and associated datatypes.</font></p> <p><font face="Arial"><strong><a href="docs/Overview.html">Overview of the Poly/ML Source Code</a></strong><br> An introduction to the various files that make up the Poly/ML source code. The source code itself is fairly well commented but this provides an overview of wher each file fits into the overall structure.</font></p> <h3><strong><font face="Arial">Other documentation.</font></strong></h3> <p><font face="Arial"><strong><a href="docs/Porting.html">Porting Poly/ML</a></strong><br> How to port Poly/ML to another operating system and/or machine architecture. This is currently being written.</font></p> <p><font face="Arial"><strong><a href="docs/IDEProtocol.html">IDE Communications Protocol </a></strong><br> Details of the communications protocol used to communicate between ML and an IDE. This is work-in-progress for version 5.3.</font></p> <p><strong><font face="Arial">The Poly Language.</font></strong></p> <p><font face="Arial">Poly/ML gets its name because the original implementation was written in a language called Poly. This was developed by David Matthews at Cambridge University as part of a PhD project. Most of the papers to do with Poly are now out of print so for those interested in Poly three papers are now available.</font></p> <p><font face="Arial">The earliest document is the <a href="docs/poly/intro.html">Introduction to Poly</a> written in 1982. This describes how to write simple programs in Poly.</font></p> <p><font face="Arial">The <a href="docs/poly/overview.html">Overview of the Poly Programming Language</a> was presented at the First Workshop on Persistent Objects, Appin, Scotland in August 1985. </font></p> <p><font face="Arial"><a href="docs/poly/polymanual.html">The Poly Manual</a> is probably the most complete and up to date description of the language. This has gone through a number of versions and was published in an early version in SIGPLAN Notices in September 1985.</font></p> </td> </tr> </table> </body> </html>