<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Platform</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_Platform.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >ghc-6.12.3: The GHC API</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Platform</FONT ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >A description of the platform we're compiling for. Used by the native code generator. In the future, this module should be the only one that references the evil #defines for each TARGET_ARCH and TARGET_OS </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3APlatform" >Platform</A > = <A HREF="#v%3APlatform" >Platform</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3AplatformArch" >platformArch</A > :: <A HREF="Platform.html#t%3AArch" >Arch</A ></TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3AplatformOS" >platformOS</A > :: <A HREF="Platform.html#t%3AOS" >OS</A ></TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AArch" >Arch</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AArchAlpha" >ArchAlpha</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AArchX86" >ArchX86</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AArchX86_64" >ArchX86_64</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AArchPPC" >ArchPPC</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AArchPPC_64" >ArchPPC_64</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AArchSPARC" >ArchSPARC</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AOS" >OS</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AOSUnknown" >OSUnknown</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AOSLinux" >OSLinux</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AOSDarwin" >OSDarwin</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AOSSolaris" >OSSolaris</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AOSMinGW32" >OSMinGW32</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AOSFreeBSD" >OSFreeBSD</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdefaultTargetPlatform" >defaultTargetPlatform</A > :: <A HREF="Platform.html#t%3APlatform" >Platform</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AosElfTarget" >osElfTarget</A > :: <A HREF="Platform.html#t%3AOS" >OS</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Platform" ><A NAME="t%3APlatform" ></A ></A ><B >Platform</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Contains enough information for the native code generator to emit code for this platform. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:Platform" ><A NAME="v%3APlatform" ></A ></A ><B >Platform</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:platformArch" ><A NAME="v%3AplatformArch" ></A ></A ><B >platformArch</B > :: <A HREF="Platform.html#t%3AArch" >Arch</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:platformOS" ><A NAME="v%3AplatformOS" ></A ></A ><B >platformOS</B > :: <A HREF="Platform.html#t%3AOS" >OS</A ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Arch" ><A NAME="t%3AArch" ></A ></A ><B >Arch</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Architectures that the native code generator knows about. TODO: It might be nice to extend these constructors with information about what instruction set extensions an architecture might support. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:ArchAlpha" ><A NAME="v%3AArchAlpha" ></A ></A ><B >ArchAlpha</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ArchX86" ><A NAME="v%3AArchX86" ></A ></A ><B >ArchX86</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ArchX86_64" ><A NAME="v%3AArchX86_64" ></A ></A ><B >ArchX86_64</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ArchPPC" ><A NAME="v%3AArchPPC" ></A ></A ><B >ArchPPC</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ArchPPC_64" ><A NAME="v%3AArchPPC_64" ></A ></A ><B >ArchPPC_64</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:ArchSPARC" ><A NAME="v%3AArchSPARC" ></A ></A ><B >ArchSPARC</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Arch')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Arch" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="Platform.html#t%3AArch" >Arch</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > <A HREF="Platform.html#t%3AArch" >Arch</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:OS" ><A NAME="t%3AOS" ></A ></A ><B >OS</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Operating systems that the native code generator knows about. Having OSUnknown should produce a sensible default, but no promises. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:OSUnknown" ><A NAME="v%3AOSUnknown" ></A ></A ><B >OSUnknown</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:OSLinux" ><A NAME="v%3AOSLinux" ></A ></A ><B >OSLinux</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:OSDarwin" ><A NAME="v%3AOSDarwin" ></A ></A ><B >OSDarwin</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:OSSolaris" ><A NAME="v%3AOSSolaris" ></A ></A ><B >OSSolaris</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:OSMinGW32" ><A NAME="v%3AOSMinGW32" ></A ></A ><B >OSMinGW32</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:OSFreeBSD" ><A NAME="v%3AOSFreeBSD" ></A ></A ><B >OSFreeBSD</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:OS')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:OS" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="Platform.html#t%3AOS" >OS</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > <A HREF="Platform.html#t%3AOS" >OS</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:defaultTargetPlatform" ><A NAME="v%3AdefaultTargetPlatform" ></A ></A ><B >defaultTargetPlatform</B > :: <A HREF="Platform.html#t%3APlatform" >Platform</A ></TD ></TR ><TR ><TD CLASS="doc" >This is the target platform as far as the #ifdefs are concerned. These are set in includes/ghcplatform.h by the autoconf scripts </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:osElfTarget" ><A NAME="v%3AosElfTarget" ></A ></A ><B >osElfTarget</B > :: <A HREF="Platform.html#t%3AOS" >OS</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" >This predicates tells us whether the OS supports ELF-like shared libraries. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >