[MLton-commit] r5745
Matthew Fluet
fluet at mlton.org
Sun Jul 8 22:11:11 PDT 2007
Grabbed wiki.
Incorporated some changes so that grab-wiki and make-pdf-guide set the
version in the guide to the date on which the wiki was grabbed.
These changes were discussed previously:
http://mlton.org/pipermail/mlton/2006-May/028840.html
http://mlton.org/pipermail/mlton/2006-June/028866.html
----------------------------------------------------------------------
U mlton/trunk/bin/grab-wiki
U mlton/trunk/bin/make-pdf-guide
U mlton/trunk/doc/guide/AST
U mlton/trunk/doc/guide/AccessControl
A mlton/trunk/doc/guide/AdamGoode
U mlton/trunk/doc/guide/AdmitsEquality
U mlton/trunk/doc/guide/Alice
U mlton/trunk/doc/guide/AllocateRegisters
U mlton/trunk/doc/guide/AndreiFormiga
U mlton/trunk/doc/guide/ArrayLiteral
U mlton/trunk/doc/guide/BasisLibrary
U mlton/trunk/doc/guide/Bug
U mlton/trunk/doc/guide/Bugs20041109
U mlton/trunk/doc/guide/Bugs20051202
U mlton/trunk/doc/guide/CKitLibrary
U mlton/trunk/doc/guide/CMinusMinus
U mlton/trunk/doc/guide/CallGraph
U mlton/trunk/doc/guide/CallingFromCToSML
U mlton/trunk/doc/guide/CallingFromSMLToC
U mlton/trunk/doc/guide/CallingFromSMLToCFunctionPointer
U mlton/trunk/doc/guide/ChrisClearwater
U mlton/trunk/doc/guide/Chunkify
U mlton/trunk/doc/guide/Closure
U mlton/trunk/doc/guide/ClosureConvert
U mlton/trunk/doc/guide/CommonArg
U mlton/trunk/doc/guide/CommonBlock
U mlton/trunk/doc/guide/CommonSubexp
U mlton/trunk/doc/guide/CompilationManager
U mlton/trunk/doc/guide/CompileTimeOptions
U mlton/trunk/doc/guide/CompilerOverview
U mlton/trunk/doc/guide/CompilerPassTemplate
U mlton/trunk/doc/guide/CompilingWithSMLNJ
U mlton/trunk/doc/guide/ConcurrentML
U mlton/trunk/doc/guide/ConcurrentMLImplementation
U mlton/trunk/doc/guide/ConstantPropagation
U mlton/trunk/doc/guide/Contact
U mlton/trunk/doc/guide/Contify
U mlton/trunk/doc/guide/CoreML
U mlton/trunk/doc/guide/CoreMLSimplify
U mlton/trunk/doc/guide/CreatingPages
U mlton/trunk/doc/guide/Credits
U mlton/trunk/doc/guide/CrossCompiling
U mlton/trunk/doc/guide/DeadCode
U mlton/trunk/doc/guide/DeepFlatten
U mlton/trunk/doc/guide/DefineTypeBeforeUse
U mlton/trunk/doc/guide/DefinitionOfStandardML
U mlton/trunk/doc/guide/Defunctorize
U mlton/trunk/doc/guide/Developers
U mlton/trunk/doc/guide/Development
U mlton/trunk/doc/guide/Documentation
U mlton/trunk/doc/guide/Drawbacks
U mlton/trunk/doc/guide/Eclipse
U mlton/trunk/doc/guide/EditingPages
U mlton/trunk/doc/guide/Elaborate
U mlton/trunk/doc/guide/Emacs
A mlton/trunk/doc/guide/EmacsBgBuildMode
A mlton/trunk/doc/guide/EmacsDefUseMode
U mlton/trunk/doc/guide/Enscript
U mlton/trunk/doc/guide/EqualityType
U mlton/trunk/doc/guide/EqualityTypeVariable
U mlton/trunk/doc/guide/EtaExpansion
U mlton/trunk/doc/guide/Experimental
U mlton/trunk/doc/guide/FAQ
U mlton/trunk/doc/guide/Features
U mlton/trunk/doc/guide/FirstClassPolymorphism
U mlton/trunk/doc/guide/Fixpoints
U mlton/trunk/doc/guide/Flatten
U mlton/trunk/doc/guide/Fold
U mlton/trunk/doc/guide/Fold01N
U mlton/trunk/doc/guide/ForLoops
U mlton/trunk/doc/guide/ForeignFunctionInterface
U mlton/trunk/doc/guide/ForeignFunctionInterfaceSyntax
U mlton/trunk/doc/guide/ForeignFunctionInterfaceTypes
U mlton/trunk/doc/guide/FrontEnd
U mlton/trunk/doc/guide/FunctionalRecordUpdate
U mlton/trunk/doc/guide/GarbageCollection
U mlton/trunk/doc/guide/GenerativeDatatype
U mlton/trunk/doc/guide/GenerativeException
U mlton/trunk/doc/guide/Glade
U mlton/trunk/doc/guide/Globalize
U mlton/trunk/doc/guide/GnuMP
U mlton/trunk/doc/guide/HaMLet
U mlton/trunk/doc/guide/HenryCejtin
U mlton/trunk/doc/guide/History
U mlton/trunk/doc/guide/Home
U mlton/trunk/doc/guide/HowProfilingWorks
A mlton/trunk/doc/guide/HowToAttachFile
U mlton/trunk/doc/guide/Identifier
U mlton/trunk/doc/guide/Immutable
U mlton/trunk/doc/guide/ImperativeTypeVariable
U mlton/trunk/doc/guide/ImplementExceptions
U mlton/trunk/doc/guide/ImplementHandlers
U mlton/trunk/doc/guide/ImplementProfiling
U mlton/trunk/doc/guide/ImplementSuffix
U mlton/trunk/doc/guide/Index
U mlton/trunk/doc/guide/InfixingOperators
U mlton/trunk/doc/guide/Inline
U mlton/trunk/doc/guide/InsertLimitChecks
U mlton/trunk/doc/guide/InsertSignalChecks
U mlton/trunk/doc/guide/Installation
U mlton/trunk/doc/guide/IntermediateLanguage
U mlton/trunk/doc/guide/IntroduceLoops
U mlton/trunk/doc/guide/JesperLouisAndersen
U mlton/trunk/doc/guide/JohnnyAndersen
U mlton/trunk/doc/guide/KnownCase
U mlton/trunk/doc/guide/LLVM
U mlton/trunk/doc/guide/LambdaCalculus
U mlton/trunk/doc/guide/LambdaFree
U mlton/trunk/doc/guide/LanguageChanges
U mlton/trunk/doc/guide/Lazy
U mlton/trunk/doc/guide/Libraries
U mlton/trunk/doc/guide/License
U mlton/trunk/doc/guide/LineDirective
U mlton/trunk/doc/guide/LocalFlatten
U mlton/trunk/doc/guide/LocalRef
U mlton/trunk/doc/guide/LoopInvariant
U mlton/trunk/doc/guide/ML
U mlton/trunk/doc/guide/MLBasis
U mlton/trunk/doc/guide/MLBasisAnnotationExamples
U mlton/trunk/doc/guide/MLBasisAnnotations
U mlton/trunk/doc/guide/MLBasisAvailableLibraries
U mlton/trunk/doc/guide/MLBasisExamples
U mlton/trunk/doc/guide/MLBasisPathMap
U mlton/trunk/doc/guide/MLBasisSyntaxAndSemantics
U mlton/trunk/doc/guide/MLKit
U mlton/trunk/doc/guide/MLNLFFI
U mlton/trunk/doc/guide/MLNLFFIImplementation
U mlton/trunk/doc/guide/MLRISCLibrary
U mlton/trunk/doc/guide/MLj
U mlton/trunk/doc/guide/MLmon
U mlton/trunk/doc/guide/MLtonArray
U mlton/trunk/doc/guide/MLtonBinIO
U mlton/trunk/doc/guide/MLtonCont
U mlton/trunk/doc/guide/MLtonExn
U mlton/trunk/doc/guide/MLtonFinalizable
U mlton/trunk/doc/guide/MLtonGC
U mlton/trunk/doc/guide/MLtonIO
U mlton/trunk/doc/guide/MLtonIntInf
U mlton/trunk/doc/guide/MLtonItimer
U mlton/trunk/doc/guide/MLtonPlatform
U mlton/trunk/doc/guide/MLtonPointer
U mlton/trunk/doc/guide/MLtonProcEnv
U mlton/trunk/doc/guide/MLtonProcess
U mlton/trunk/doc/guide/MLtonProfile
U mlton/trunk/doc/guide/MLtonRandom
U mlton/trunk/doc/guide/MLtonRlimit
U mlton/trunk/doc/guide/MLtonRusage
U mlton/trunk/doc/guide/MLtonSignal
U mlton/trunk/doc/guide/MLtonSocket
U mlton/trunk/doc/guide/MLtonStructure
U mlton/trunk/doc/guide/MLtonSyslog
U mlton/trunk/doc/guide/MLtonTextIO
U mlton/trunk/doc/guide/MLtonThread
U mlton/trunk/doc/guide/MLtonVector
U mlton/trunk/doc/guide/MLtonWeak
U mlton/trunk/doc/guide/MLtonWord
U mlton/trunk/doc/guide/MLtonWorld
U mlton/trunk/doc/guide/Machine
U mlton/trunk/doc/guide/ManualPage
U mlton/trunk/doc/guide/MatchCompilation
U mlton/trunk/doc/guide/MatchCompile
U mlton/trunk/doc/guide/MatthewFluet
U mlton/trunk/doc/guide/MichaelNorrish
U mlton/trunk/doc/guide/MikeThomas
U mlton/trunk/doc/guide/MoinMoin
U mlton/trunk/doc/guide/Monomorphise
U mlton/trunk/doc/guide/MoscowML
U mlton/trunk/doc/guide/Multi
U mlton/trunk/doc/guide/Mutable
U mlton/trunk/doc/guide/NumericLiteral
U mlton/trunk/doc/guide/OCaml
U mlton/trunk/doc/guide/ObjectOrientedProgramming
U mlton/trunk/doc/guide/OpenGL
U mlton/trunk/doc/guide/OperatorPrecedence
U mlton/trunk/doc/guide/OptionalArguments
U mlton/trunk/doc/guide/OrphanedPages
U mlton/trunk/doc/guide/OtherSites
U mlton/trunk/doc/guide/Overloading
U mlton/trunk/doc/guide/PackedRepresentation
U mlton/trunk/doc/guide/PageSize
U mlton/trunk/doc/guide/ParallelMove
U mlton/trunk/doc/guide/Performance
U mlton/trunk/doc/guide/PhantomType
U mlton/trunk/doc/guide/PlatformSpecificNotes
U mlton/trunk/doc/guide/PolyEqual
U mlton/trunk/doc/guide/PolyML
U mlton/trunk/doc/guide/PolymorphicEquality
U mlton/trunk/doc/guide/Polyvariance
U mlton/trunk/doc/guide/Poplog
U mlton/trunk/doc/guide/PortStatus
U mlton/trunk/doc/guide/PortingMLton
U mlton/trunk/doc/guide/PrecedenceParse
U mlton/trunk/doc/guide/Printf
U mlton/trunk/doc/guide/PrintfGentle
U mlton/trunk/doc/guide/ProductType
U mlton/trunk/doc/guide/Profiling
U mlton/trunk/doc/guide/ProfilingAllocation
U mlton/trunk/doc/guide/ProfilingCounts
U mlton/trunk/doc/guide/ProfilingTheStack
U mlton/trunk/doc/guide/ProfilingTime
U mlton/trunk/doc/guide/Projects
U mlton/trunk/doc/guide/Pronounce
U mlton/trunk/doc/guide/PropertyList
U mlton/trunk/doc/guide/RSSA
U mlton/trunk/doc/guide/RSSAShrink
U mlton/trunk/doc/guide/RSSASimplify
U mlton/trunk/doc/guide/RayRacine
U mlton/trunk/doc/guide/Reachability
U mlton/trunk/doc/guide/Redundant
U mlton/trunk/doc/guide/RedundantTests
U mlton/trunk/doc/guide/RefFlatten
U mlton/trunk/doc/guide/References
U mlton/trunk/doc/guide/Regions
U mlton/trunk/doc/guide/ReleaseChecklist
U mlton/trunk/doc/guide/RemoveUnused
U mlton/trunk/doc/guide/Restore
A mlton/trunk/doc/guide/ReturnStatement
D mlton/trunk/doc/guide/Roadmap
U mlton/trunk/doc/guide/RunTimeOptions
A mlton/trunk/doc/guide/RunningOnAMD64
U mlton/trunk/doc/guide/RunningOnCygwin
U mlton/trunk/doc/guide/RunningOnDarwin
U mlton/trunk/doc/guide/RunningOnFreeBSD
A mlton/trunk/doc/guide/RunningOnHPPA
A mlton/trunk/doc/guide/RunningOnHPUX
U mlton/trunk/doc/guide/RunningOnLinux
U mlton/trunk/doc/guide/RunningOnMinGW
U mlton/trunk/doc/guide/RunningOnNetBSD
U mlton/trunk/doc/guide/RunningOnOpenBSD
U mlton/trunk/doc/guide/RunningOnPowerPC
U mlton/trunk/doc/guide/RunningOnSolaris
U mlton/trunk/doc/guide/RunningOnSparc
A mlton/trunk/doc/guide/RunningOnX86
U mlton/trunk/doc/guide/SMLNET
U mlton/trunk/doc/guide/SMLNJ
U mlton/trunk/doc/guide/SMLNJDeviations
U mlton/trunk/doc/guide/SMLNJLibrary
A mlton/trunk/doc/guide/SMLSharp
U mlton/trunk/doc/guide/SMLofNJStructure
U mlton/trunk/doc/guide/SSA
U mlton/trunk/doc/guide/SSA2
U mlton/trunk/doc/guide/SSA2Simplify
U mlton/trunk/doc/guide/SSASimplify
U mlton/trunk/doc/guide/SXML
U mlton/trunk/doc/guide/SXMLShrink
U mlton/trunk/doc/guide/SXMLSimplify
U mlton/trunk/doc/guide/ScopeInference
U mlton/trunk/doc/guide/SelfCompiling
U mlton/trunk/doc/guide/Serialization
U mlton/trunk/doc/guide/ShowBasis
U mlton/trunk/doc/guide/ShowProf
U mlton/trunk/doc/guide/Shrink
U mlton/trunk/doc/guide/SimplifyTypes
U mlton/trunk/doc/guide/Sources
U mlton/trunk/doc/guide/SpaceSafety
U mlton/trunk/doc/guide/Stabilizers
U mlton/trunk/doc/guide/StandardML
U mlton/trunk/doc/guide/StandardMLBooks
U mlton/trunk/doc/guide/StandardMLGotchas
U mlton/trunk/doc/guide/StandardMLHistory
U mlton/trunk/doc/guide/StandardMLImplementations
U mlton/trunk/doc/guide/StandardMLPortability
U mlton/trunk/doc/guide/StandardMLTutorials
U mlton/trunk/doc/guide/StephenWeeks
U mlton/trunk/doc/guide/StyleGuide
U mlton/trunk/doc/guide/Subversion
A mlton/trunk/doc/guide/SuccessorML
U mlton/trunk/doc/guide/SureshJagannathan
U mlton/trunk/doc/guide/Survey
U mlton/trunk/doc/guide/SurveyDone
U mlton/trunk/doc/guide/Swerve
U mlton/trunk/doc/guide/SyntacticConventions
U mlton/trunk/doc/guide/SystemInfo
U mlton/trunk/doc/guide/TILT
U mlton/trunk/doc/guide/Talk
U mlton/trunk/doc/guide/TalkDiveIn
U mlton/trunk/doc/guide/TalkFolkLore
U mlton/trunk/doc/guide/TalkFromSMLTo
U mlton/trunk/doc/guide/TalkHowHigherOrder
U mlton/trunk/doc/guide/TalkHowModules
U mlton/trunk/doc/guide/TalkHowPolymorphism
U mlton/trunk/doc/guide/TalkMLtonApproach
U mlton/trunk/doc/guide/TalkMLtonFeatures
U mlton/trunk/doc/guide/TalkMLtonHistory
U mlton/trunk/doc/guide/TalkStandardML
U mlton/trunk/doc/guide/TalkTemplate
U mlton/trunk/doc/guide/TalkWholeProgram
A mlton/trunk/doc/guide/TipsForWritingConciseSML
U mlton/trunk/doc/guide/ToMachine
U mlton/trunk/doc/guide/ToRSSA
U mlton/trunk/doc/guide/ToSSA2
U mlton/trunk/doc/guide/TomMurphy
U mlton/trunk/doc/guide/TrustedGroup
U mlton/trunk/doc/guide/TypeChecking
U mlton/trunk/doc/guide/TypeConstructor
U mlton/trunk/doc/guide/TypeIndexedValues
U mlton/trunk/doc/guide/TypeVariableScope
U mlton/trunk/doc/guide/Unicode
U mlton/trunk/doc/guide/UniversalType
U mlton/trunk/doc/guide/UnresolvedBugs
U mlton/trunk/doc/guide/UnsafeStructure
U mlton/trunk/doc/guide/Useless
U mlton/trunk/doc/guide/Users
U mlton/trunk/doc/guide/Utilities
A mlton/trunk/doc/guide/VERSION
U mlton/trunk/doc/guide/ValueRestriction
U mlton/trunk/doc/guide/VariableArityPolymorphism
U mlton/trunk/doc/guide/Variant
U mlton/trunk/doc/guide/VesaKarvonen
U mlton/trunk/doc/guide/WantedPages
U mlton/trunk/doc/guide/WebSite
U mlton/trunk/doc/guide/WesleyTerpstra
U mlton/trunk/doc/guide/WholeProgramOptimization
U mlton/trunk/doc/guide/WikiMacros
U mlton/trunk/doc/guide/WikiName
U mlton/trunk/doc/guide/WikiTool
A mlton/trunk/doc/guide/WishList
U mlton/trunk/doc/guide/XML
U mlton/trunk/doc/guide/XMLShrink
U mlton/trunk/doc/guide/XMLSimplify
U mlton/trunk/doc/guide/XMLSimplifyTypes
U mlton/trunk/doc/guide/ZZZOrphanedPages
U mlton/trunk/doc/guide/Zone
U mlton/trunk/doc/guide/eXene
U mlton/trunk/doc/guide/fxp
U mlton/trunk/doc/guide/index.html
U mlton/trunk/doc/guide/mGTK
U mlton/trunk/doc/x86_64-port-notes/TODO
----------------------------------------------------------------------
Modified: mlton/trunk/bin/grab-wiki
===================================================================
--- mlton/trunk/bin/grab-wiki 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/bin/grab-wiki 2007-07-09 05:11:01 UTC (rev 5745)
@@ -46,16 +46,16 @@
grep -v >"$index" -e '^$' -e "^$drop$"
echo "Getting pages:"
-wget -B "$base" -c -nv -i "$index"
+wget -B "$base" -nv -i "$index"
echo "Getting CSS:"
for f in common screen print; do
- wget -c "$base/wiki/mlton/css/$f.css"
+ wget "$base/wiki/mlton/css/$f.css"
done
echo "Getting images:"
for f in bottom email ftp news top www; do
- wget -c "$base/wiki/mlton/img/moin-$f.png"
+ wget "$base/wiki/mlton/img/moin-$f.png"
done
fi
@@ -105,3 +105,5 @@
rm -f "$tmp" "$index" "$script"
cp Home index.html
+
+echo $version > VERSION
Modified: mlton/trunk/bin/make-pdf-guide
===================================================================
--- mlton/trunk/bin/make-pdf-guide 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/bin/make-pdf-guide 2007-07-09 05:11:01 UTC (rev 5745)
@@ -30,7 +30,7 @@
script='.script'
titlepage='title.html'
tmp="/tmp/mlton-guide.$$"
-version=`date +%Y%m%d`
+version=`cat $src/doc/guide/VERSION`
rm -rf "$tmp"
mkdir "$tmp"
Modified: mlton/trunk/doc/guide/AST
===================================================================
--- mlton/trunk/doc/guide/AST 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/AST 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -60,24 +60,10 @@
The abstract syntax tree produced by the <a href="FrontEnd">FrontEnd</a>.
</p>
<h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast/ast-programs.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-programs.sig</a>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast/ast-programs.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-programs.fun</a>
-<br>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast/ast-modules.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-modules.sig</a>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast/ast-modules.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-modules.fun</a>
-<br>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast/ast-core.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-core.sig</a>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast/ast-core.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-core.fun</a>
-<br>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/ast"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast</a>
- <h2 id="head-a6de4b535fedeaa8890bd890b60fe09f87b5f96a">Type Checking</h2>
+<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ast/ast-programs.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-programs.sig</a> <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20070709-release/mlton/ast/ast-programs.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-programs.fun</a><br>
+ <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ast/ast-modules.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-modules.sig</a> <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20070709-release/mlton/ast/ast-modules.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-modules.fun</a><br>
+ <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ast/ast-core.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-core.sig</a> <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20070709-release/mlton/ast/ast-core.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-core.fun</a><br>
+ <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20070709-release/mlton/ast"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast</a> <h2 id="head-a6de4b535fedeaa8890bd890b60fe09f87b5f96a">Type Checking</h2>
<p>
The AST <a href="IntermediateLanguage">IntermediateLanguage</a> has no independent type checker. Type inference is performed on an AST program as part of <a href="Elaborate">Elaborate</a>.
</p>
@@ -88,5 +74,5 @@
<p>
<hr>
-Last edited on 2005-11-30 19:55:04 by <span title="ppp-71-139-183-221.dsl.snfc21.pacbell.net"><a href="StephenWeeks">StephenWeeks</a></span>.
+Last edited on 2006-11-02 17:54:45 by <span title="76.16.241.4"><a href="MatthewFluet">MatthewFluet</a></span>.
</body></html>
Modified: mlton/trunk/doc/guide/AccessControl
===================================================================
--- mlton/trunk/doc/guide/AccessControl 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/AccessControl 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
Added: mlton/trunk/doc/guide/AdamGoode
===================================================================
--- mlton/trunk/doc/guide/AdamGoode 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/AdamGoode 2007-07-09 05:11:01 UTC (rev 5745)
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta name="robots" content="index,nofollow">
+
+
+
+<title>AdamGoode - MLton Standard ML Compiler (SML Compiler)</title>
+<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="all" href="common.css">
+<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="screen" href="screen.css">
+<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="print" href="print.css">
+
+
+<link rel="Start" href="Home">
+
+
+</head>
+
+<body lang="en" dir="ltr">
+
+<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+_uacct = "UA-833377-1";
+urchinTracker();
+</script>
+<table bgcolor = lightblue cellspacing = 0 style = "border: 0px;" width = 100%>
+ <tr>
+ <td style = "
+ border: 0px;
+ color: darkblue;
+ font-size: 150%;
+ text-align: left;">
+ <a class = mltona href="Home">MLton 20070709</a>
+ <td style = "
+ border: 0px;
+ font-size: 150%;
+ text-align: center;
+ width: 50%;">
+ AdamGoode
+ <td style = "
+ border: 0px;
+ text-align: right;">
+ <table cellspacing = 0 style = "border: 0px">
+ <tr style = "vertical-align: middle;">
+ </table>
+ <tr style = "background-color: white;">
+ <td colspan = 3
+ style = "
+ border: 0px;
+ font-size:70%;
+ text-align: right;">
+ <a href = "Home">Home</a>
+ <a href = "Index">Index</a>
+
+</table>
+<div id="content" lang="en" dir="ltr">
+I maintain the Fedora package of MLton, in <a class="external" href="http://fedoraproject.org/wiki/Extras"><img src="moin-www.png" alt="[WWW]" height="11" width="11">Fedora Extras</a>. </div>
+
+
+
+<p>
+<hr>
+Last edited on 2006-12-03 04:04:02 by <span title="pool-72-77-83-84.pitbpa.fios.verizon.net"><a href="AdamGoode">AdamGoode</a></span>.
+</body></html>
Modified: mlton/trunk/doc/guide/AdmitsEquality
===================================================================
--- mlton/trunk/doc/guide/AdmitsEquality 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/AdmitsEquality 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -64,7 +64,7 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">type</FONT></B> ('a1, ..., 'an) t <B><FONT COLOR="#5F9EA0">=</FONT></B> ...
+<B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> ('a1, ..., 'an) t </FONT></B>=<B><FONT COLOR="#228B22"> </FONT></B>...
</PRE>
<p>
@@ -77,8 +77,8 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">type</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B>
-</PRE>
+<B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B>=<B><FONT COLOR="#228B22"> bool * int
+</FONT></B></PRE>
<p>
</p>
@@ -87,8 +87,8 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">type</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B>
-</PRE>
+<B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B>=<B><FONT COLOR="#228B22"> bool * int * real
+</FONT></B></PRE>
<p>
</p>
@@ -100,8 +100,8 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">type</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a
-</PRE>
+<B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> 'a t </FONT></B>=<B><FONT COLOR="#228B22"> bool * 'a
+</FONT></B></PRE>
<p>
</p>
@@ -113,8 +113,8 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">type</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a
-</PRE>
+<B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> 'a t </FONT></B>=<B><FONT COLOR="#228B22"> real * 'a
+</FONT></B></PRE>
<p>
</p>
@@ -126,20 +126,20 @@
</p>
<pre class=code>
-<B><FONT COLOR="#5F9EA0">structure</FONT></B> Ok: <B><FONT COLOR="#5F9EA0">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B> 'a t <B><FONT COLOR="#A020F0">end</FONT></B> <B><FONT COLOR="#5F9EA0">=</FONT></B>
- <B><FONT COLOR="#5F9EA0">struct</FONT></B>
- <B><FONT COLOR="#A020F0">type</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a
- <B><FONT COLOR="#A020F0">end</FONT></B>
+<B><FONT COLOR="#0000FF">structure</FONT></B> Ok: <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B><B><FONT COLOR="#228B22"> 'a t </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> =
+ <B><FONT COLOR="#0000FF">struct</FONT></B>
+ <B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> 'a t </FONT></B>=<B><FONT COLOR="#228B22"> bool * 'a
+ </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B>
</PRE>
<p>
</p>
<pre class=code>
-<B><FONT COLOR="#5F9EA0">structure</FONT></B> Bad: <B><FONT COLOR="#5F9EA0">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B> 'a t <B><FONT COLOR="#A020F0">end</FONT></B> <B><FONT COLOR="#5F9EA0">=</FONT></B>
- <B><FONT COLOR="#5F9EA0">struct</FONT></B>
- <B><FONT COLOR="#A020F0">type</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a
- <B><FONT COLOR="#A020F0">end</FONT></B>
+<B><FONT COLOR="#0000FF">structure</FONT></B> Bad: <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B><B><FONT COLOR="#228B22"> 'a t </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> =
+ <B><FONT COLOR="#0000FF">struct</FONT></B>
+ <B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> 'a t </FONT></B>=<B><FONT COLOR="#228B22"> real * int * 'a
+ </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B>
</PRE>
<p>
@@ -152,29 +152,29 @@
</p>
<h2 id="head-c494234542affd2943bc7247d524477b03bc18bc">Datatype declarations</h2>
<p>
-For a type constructor declared by a datatype declaration to admit equality, every variant of the datatype must admit equality. For example, the following datatype admits equality because <tt>bool</tt> and <tt>char * int</tt> are equality types.
+For a type constructor declared by a datatype declaration to admit equality, every <a href="Variant">variant</a> of the datatype must admit equality. For example, the following datatype admits equality because <tt>bool</tt> and <tt>char * int</tt> are equality types.
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">char</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B>
-</PRE>
+<B><FONT COLOR="#A020F0">datatype</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">A</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> bool </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> char * int
+</FONT></B></PRE>
<p>
</p>
<p>
Nullary constructors trivially admit equality, so that the following datatype admits equality.
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#5F9EA0">|</FONT></B> C
-</PRE>
+<B><FONT COLOR="#A020F0">datatype</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">B</FONT> </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">C</FONT>
+</FONT></B></PRE>
</p>
<p>
-For a parameterized datatype constructor to admit equality, we consider each variant as a type definition, and require that the definition admit equality. For example, for the datatype
+For a parameterized datatype constructor to admit equality, we consider each <a href="Variant">variant</a> as a type definition, and require that the definition admit equality. For example, for the datatype
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> 'a
-</PRE>
+<B><FONT COLOR="#A020F0">datatype</FONT></B><B><FONT COLOR="#228B22"> 'a t </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">A</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> bool * 'a </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> 'a
+</FONT></B></PRE>
<p>
</p>
@@ -183,9 +183,9 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">type</FONT></B> 'a tA <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a
-<B><FONT COLOR="#A020F0">type</FONT></B> 'a tB <B><FONT COLOR="#5F9EA0">=</FONT></B> 'a
-</PRE>
+<B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> 'a tA </FONT></B>=<B><FONT COLOR="#228B22"> bool * 'a
+</FONT></B><B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> 'a tB </FONT></B>=<B><FONT COLOR="#228B22"> 'a
+</FONT></B></PRE>
<p>
</p>
@@ -197,8 +197,8 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a
-</PRE>
+<B><FONT COLOR="#A020F0">datatype</FONT></B><B><FONT COLOR="#228B22"> 'a t </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">A</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> bool * 'a </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> real * 'a
+</FONT></B></PRE>
<p>
</p>
@@ -207,10 +207,10 @@
</p>
<pre class=code>
-<B><FONT COLOR="#5F9EA0">structure</FONT></B> Bad: <B><FONT COLOR="#5F9EA0">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B> 'a t <B><FONT COLOR="#A020F0">end</FONT></B> <B><FONT COLOR="#5F9EA0">=</FONT></B>
- <B><FONT COLOR="#5F9EA0">struct</FONT></B>
- <B><FONT COLOR="#A020F0">datatype</FONT></B> 'a t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">bool</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a
- <B><FONT COLOR="#A020F0">end</FONT></B>
+<B><FONT COLOR="#0000FF">structure</FONT></B> Bad: <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B><B><FONT COLOR="#228B22"> 'a t </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> =
+ <B><FONT COLOR="#0000FF">struct</FONT></B>
+ <B><FONT COLOR="#A020F0">datatype</FONT></B><B><FONT COLOR="#228B22"> 'a t </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">A</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> bool * 'a </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> real * 'a
+ </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B>
</PRE>
<p>
@@ -230,35 +230,35 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> t
-</PRE>
+<B><FONT COLOR="#A020F0">datatype</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> int * t
+</FONT></B></PRE>
<p>
</p>
<p>
-introduces a new problem, since in order to decide whether <tt>t</tt> admits equality, we need to know for the <tt>B</tt> variant whether <tt>t</tt> admits equality. The <a href="DefinitionOfStandardML">Definition</a> answers this question by requiring a type constructor to admit equality if it is consistent to do so. So, in our above example, if we assume that <tt>t</tt> admits equality, then the variant <tt>B of int * t</tt> admits equality. Then, since the <tt>A</tt> variant trivially admits equality, so does the type constructor <tt>t</tt>. Thus, it was consistent to assume that <tt>t</tt> admits equality, and so, <tt>t</tt> does admit equality.
+introduces a new problem, since in order to decide whether <tt>t</tt> admits equality, we need to know for the <tt>B</tt> <a href="Variant">variant</a> whether <tt>t</tt> admits equality. The <a href="DefinitionOfStandardML">Definition</a> answers this question by requiring a type constructor to admit equality if it is consistent to do so. So, in our above example, if we assume that <tt>t</tt> admits equality, then the <a href="Variant">variant</a> <tt>B of int * t</tt> admits equality. Then, since the <tt>A</tt> <a href="Variant">variant</a> trivially admits equality, so does the type constructor <tt>t</tt>. Thus, it was consistent to assume that <tt>t</tt> admits equality, and so, <tt>t</tt> does admit equality.
</p>
<p>
On the other hand, in the following declaration
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> t
-</PRE>
- if we assume that <tt>t</tt> admits equality, then the <tt>B</tt> variant does not admit equality. Hence, the type constructor <tt>t</tt> does not admit equality, and our assumption was inconsistent. Hence, <tt>t</tt> does not admit equality.
+<B><FONT COLOR="#A020F0">datatype</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> real * t
+</FONT></B></PRE>
+ if we assume that <tt>t</tt> admits equality, then the <tt>B</tt> <a href="Variant">variant</a> does not admit equality. Hence, the type constructor <tt>t</tt> does not admit equality, and our assumption was inconsistent. Hence, <tt>t</tt> does not admit equality.
</p>
<p>
The same kind of reasoning applies to mutually recursive datatypes as well. For example, the following defines both <tt>t</tt> and <tt>u</tt> to admit equality.
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> u
-<B><FONT COLOR="#A020F0">and</FONT></B> u <B><FONT COLOR="#5F9EA0">=</FONT></B> C <B><FONT COLOR="#5F9EA0">|</FONT></B> D <B><FONT COLOR="#A020F0">of</FONT></B> t
-</PRE>
+<B><FONT COLOR="#A020F0">datatype</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> u
+</FONT></B><B><FONT COLOR="#A020F0">and</FONT></B><B><FONT COLOR="#228B22"> u </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">C</FONT> </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">D</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> t
+</FONT></B></PRE>
</p>
<p>
But the following defines neither <tt>t</tt> nor <tt>u</tt> to admit equality.
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> u <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B>
-<B><FONT COLOR="#A020F0">and</FONT></B> u <B><FONT COLOR="#5F9EA0">=</FONT></B> C <B><FONT COLOR="#5F9EA0">|</FONT></B> D <B><FONT COLOR="#A020F0">of</FONT></B> t
-</PRE>
+<B><FONT COLOR="#A020F0">datatype</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> u * real
+</FONT></B><B><FONT COLOR="#A020F0">and</FONT></B><B><FONT COLOR="#228B22"> u </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">C</FONT> </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">D</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> t
+</FONT></B></PRE>
</p>
<p>
@@ -266,11 +266,11 @@
</p>
<pre class=code>
-<B><FONT COLOR="#5F9EA0">structure</FONT></B> Bad: <B><FONT COLOR="#5F9EA0">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B> t <B><FONT COLOR="#A020F0">eqtype</FONT></B> u <B><FONT COLOR="#A020F0">end</FONT></B> <B><FONT COLOR="#5F9EA0">=</FONT></B>
- <B><FONT COLOR="#5F9EA0">struct</FONT></B>
- <B><FONT COLOR="#A020F0">datatype</FONT></B> t <B><FONT COLOR="#5F9EA0">=</FONT></B> A <B><FONT COLOR="#5F9EA0">|</FONT></B> B <B><FONT COLOR="#A020F0">of</FONT></B> u <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B>
- <B><FONT COLOR="#A020F0">and</FONT></B> u <B><FONT COLOR="#5F9EA0">=</FONT></B> C <B><FONT COLOR="#5F9EA0">|</FONT></B> D <B><FONT COLOR="#A020F0">of</FONT></B> t
- <B><FONT COLOR="#A020F0">end</FONT></B>
+<B><FONT COLOR="#0000FF">structure</FONT></B> Bad: <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B><B><FONT COLOR="#A020F0">eqtype</FONT></B><B><FONT COLOR="#228B22"> u </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> =
+ <B><FONT COLOR="#0000FF">struct</FONT></B>
+ <B><FONT COLOR="#A020F0">datatype</FONT></B><B><FONT COLOR="#228B22"> t </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> u * real
+ </FONT></B><B><FONT COLOR="#A020F0">and</FONT></B><B><FONT COLOR="#228B22"> u </FONT></B>=<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">C</FONT> </FONT></B>|<B><FONT COLOR="#228B22"> <FONT COLOR="#B8860B">D</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> t
+ </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B>
</PRE>
<p>
@@ -291,5 +291,5 @@
<p>
<hr>
-Last edited on 2005-12-02 06:44:43 by <span title="ppp-71-139-183-221.dsl.snfc21.pacbell.net"><a href="StephenWeeks">StephenWeeks</a></span>.
+Last edited on 2007-07-08 22:57:33 by <span title="c-71-57-91-146.hsd1.il.comcast.net"><a href="MatthewFluet">MatthewFluet</a></span>.
</body></html>
Modified: mlton/trunk/doc/guide/Alice
===================================================================
--- mlton/trunk/doc/guide/Alice 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/Alice 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
Modified: mlton/trunk/doc/guide/AllocateRegisters
===================================================================
--- mlton/trunk/doc/guide/AllocateRegisters 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/AllocateRegisters 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -60,16 +60,12 @@
Computes an allocation of <a href="RSSA">RSSA</a> variables as <a href="Machine">Machine</a> register or stack operands.
</p>
<h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/backend/allocate-registers.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">allocate-registers.sig</a>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/mlton/backend/allocate-registers.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">allocate-registers.fun</a>
- <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2>
+<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/allocate-registers.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">allocate-registers.sig</a> <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20070709-release/mlton/backend/allocate-registers.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">allocate-registers.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2>
</div>
<p>
<hr>
-Last edited on 2005-11-30 19:54:55 by <span title="ppp-71-139-183-221.dsl.snfc21.pacbell.net"><a href="StephenWeeks">StephenWeeks</a></span>.
+Last edited on 2006-11-02 17:36:11 by <span title="76.16.241.4"><a href="MatthewFluet">MatthewFluet</a></span>.
</body></html>
Modified: mlton/trunk/doc/guide/AndreiFormiga
===================================================================
--- mlton/trunk/doc/guide/AndreiFormiga 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/AndreiFormiga 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
Modified: mlton/trunk/doc/guide/ArrayLiteral
===================================================================
--- mlton/trunk/doc/guide/ArrayLiteral 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/ArrayLiteral 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -96,44 +96,44 @@
</p>
<pre class=code>
-<B><FONT COLOR="#5F9EA0">structure</FONT></B> Literal:<B><FONT COLOR="#5F9EA0">></FONT></B>
- <B><FONT COLOR="#5F9EA0">sig</FONT></B>
- <B><FONT COLOR="#A020F0">type</FONT></B> 'a z
- <B><FONT COLOR="#A020F0">val</FONT></B> A: ('a z, 'a z, 'a <B><FONT COLOR="#228B22">array</FONT></B>, 'd) Fold.t
- <B><FONT COLOR="#A020F0">val</FONT></B> V: ('a z, 'a z, 'a <B><FONT COLOR="#228B22">vector</FONT></B>, 'd) Fold.t
+<B><FONT COLOR="#0000FF">structure</FONT></B> Literal:>
+ <B><FONT COLOR="#0000FF">sig</FONT></B>
+ <B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> 'a z
+ </FONT></B><B><FONT COLOR="#A020F0">val</FONT></B> A: ('a z, 'a z, 'a array, 'd) Fold.t
+ <B><FONT COLOR="#A020F0">val</FONT></B> V: ('a z, 'a z, 'a vector, 'd) Fold.t
<B><FONT COLOR="#A020F0">val</FONT></B> ` : ('a, 'a z, 'a z, 'b, 'c, 'd) Fold.step1
- <B><FONT COLOR="#A020F0">end</FONT></B> <B><FONT COLOR="#5F9EA0">=</FONT></B>
- <B><FONT COLOR="#5F9EA0">struct</FONT></B>
- <B><FONT COLOR="#A020F0">type</FONT></B> 'a z <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> 'a option <B><FONT COLOR="#5F9EA0">*</FONT></B> ('a <B><FONT COLOR="#228B22">array</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>)
+ <B><FONT COLOR="#0000FF">end</FONT></B> =
+ <B><FONT COLOR="#0000FF">struct</FONT></B>
+ <B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> 'a z </FONT></B>=<B><FONT COLOR="#228B22"> int * 'a option * ('a array -> unit)
- <B><FONT COLOR="#A020F0">val</FONT></B> A <B><FONT COLOR="#5F9EA0">=</FONT></B>
- <B><FONT COLOR="#A020F0">fn</FONT></B> z <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B>
+ </FONT></B><B><FONT COLOR="#A020F0">val</FONT></B> A =
+ <B><FONT COLOR="#A020F0">fn</FONT></B> z =>
Fold.fold
- ((0, <B><FONT COLOR="#5F9EA0">NONE</FONT></B>, ignore),
- <B><FONT COLOR="#A020F0">fn</FONT></B> (n, opt, fill) <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B>
+ ((<B><FONT COLOR="#5F9EA0">0</FONT></B>, NONE, ignore),
+ <B><FONT COLOR="#A020F0">fn</FONT></B> (n, opt, fill) =>
<B><FONT COLOR="#A020F0">case</FONT></B> opt <B><FONT COLOR="#A020F0">of</FONT></B>
- <B><FONT COLOR="#5F9EA0">NONE</FONT></B> <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B>
- Array.tabulate (0, <B><FONT COLOR="#A020F0">fn</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#A020F0">raise</FONT></B> Fail <B><FONT COLOR="#BC8F8F">"array0"</FONT></B>)
- <B><FONT COLOR="#5F9EA0">|</FONT></B> <B><FONT COLOR="#5F9EA0">SOME</FONT></B> x <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B>
+ NONE =>
+ Array.tabulate (<B><FONT COLOR="#5F9EA0">0</FONT></B>, <B><FONT COLOR="#A020F0">fn</FONT></B> _ => <B><FONT COLOR="#A020F0">raise</FONT></B> Fail <B><FONT COLOR="#BC8F8F">"array0"</FONT></B>)
+ | SOME x =>
<B><FONT COLOR="#A020F0">let</FONT></B>
- <B><FONT COLOR="#A020F0">val</FONT></B> a <B><FONT COLOR="#5F9EA0">=</FONT></B> Array.<B><FONT COLOR="#228B22">array</FONT></B> (n, x)
- <B><FONT COLOR="#A020F0">val</FONT></B> () <B><FONT COLOR="#5F9EA0">=</FONT></B> fill a
+ <B><FONT COLOR="#A020F0">val</FONT></B> a = Array.array (n, x)
+ <B><FONT COLOR="#A020F0">val</FONT></B> () = fill a
<B><FONT COLOR="#A020F0">in</FONT></B>
a
<B><FONT COLOR="#A020F0">end</FONT></B>)
z
- <B><FONT COLOR="#A020F0">val</FONT></B> V <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#A020F0">fn</FONT></B> z <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> Fold.post (A, Array.<B><FONT COLOR="#228B22">vector</FONT></B>) z
+ <B><FONT COLOR="#A020F0">val</FONT></B> V = <B><FONT COLOR="#A020F0">fn</FONT></B> z => Fold.post (A, Array.vector) z
- <B><FONT COLOR="#A020F0">val</FONT></B> ` <B><FONT COLOR="#5F9EA0">=</FONT></B>
- <B><FONT COLOR="#A020F0">fn</FONT></B> z <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B>
+ <B><FONT COLOR="#A020F0">val</FONT></B> ` =
+ <B><FONT COLOR="#A020F0">fn</FONT></B> z =>
Fold.step1
- (<B><FONT COLOR="#A020F0">fn</FONT></B> (x, (i, opt, fill)) <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B>
- (i <B><FONT COLOR="#5F9EA0">+</FONT></B> 1,
- <B><FONT COLOR="#5F9EA0">SOME</FONT></B> x,
- <B><FONT COLOR="#A020F0">fn</FONT></B> a <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> (Array.update (a, i, x); fill a)))
+ (<B><FONT COLOR="#A020F0">fn</FONT></B> (x, (i, opt, fill)) =>
+ (i + <B><FONT COLOR="#5F9EA0">1</FONT></B>,
+ SOME x,
+ <B><FONT COLOR="#A020F0">fn</FONT></B> a => (Array.update (a, i, x); fill a)))
z
- <B><FONT COLOR="#A020F0">end</FONT></B>
+ <B><FONT COLOR="#0000FF">end</FONT></B>
</PRE>
<p>
Modified: mlton/trunk/doc/guide/BasisLibrary
===================================================================
--- mlton/trunk/doc/guide/BasisLibrary 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/BasisLibrary 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
Modified: mlton/trunk/doc/guide/Bug
===================================================================
--- mlton/trunk/doc/guide/Bug 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/Bug 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
Modified: mlton/trunk/doc/guide/Bugs20041109
===================================================================
--- mlton/trunk/doc/guide/Bugs20041109 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/Bugs20041109 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
Modified: mlton/trunk/doc/guide/Bugs20051202
===================================================================
--- mlton/trunk/doc/guide/Bugs20051202 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/Bugs20051202 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -78,7 +78,7 @@
<li>
<p>
- The optimizer reports an internal error ("<a class="nonexistent" href="TypeError">TypeError</a>") when an imported C function is called but not used. Thanks to <tt>jq</tt> for the bug report.
+ The optimizer reports an internal error (<tt>TypeError</tt>) when an imported C function is called but not used. Thanks to <tt>jq</tt> for the bug report.
</p>
</li>
</ul>
@@ -89,5 +89,5 @@
<p>
<hr>
-Last edited on 2006-10-13 11:19:07 by <span title="www-cache2.hel.fi.ssh.com"><a href="VesaKarvonen">VesaKarvonen</a></span>.
+Last edited on 2007-07-08 21:15:34 by <span title="c-71-57-91-146.hsd1.il.comcast.net"><a href="MatthewFluet">MatthewFluet</a></span>.
</body></html>
Modified: mlton/trunk/doc/guide/CKitLibrary
===================================================================
--- mlton/trunk/doc/guide/CKitLibrary 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/CKitLibrary 2007-07-09 05:11:01 UTC (rev 5745)
@@ -33,7 +33,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -152,9 +152,7 @@
<li>
<p>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20061025-release/lib/ckit-lib/ckit.patch?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ckit.patch</a>
-
+ <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20070709-release/lib/ckit-lib/ckit.patch?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ckit.patch</a>
</p>
</li>
</ul>
@@ -165,5 +163,5 @@
<p>
<hr>
-Last edited on 2006-03-04 17:01:32 by <span title="209-6-203-188.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com"><a href="MatthewFluet">MatthewFluet</a></span>.
+Last edited on 2006-11-02 17:48:22 by <span title="76.16.241.4"><a href="MatthewFluet">MatthewFluet</a></span>.
</body></html>
Modified: mlton/trunk/doc/guide/CMinusMinus
===================================================================
--- mlton/trunk/doc/guide/CMinusMinus 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/CMinusMinus 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
Modified: mlton/trunk/doc/guide/CallGraph
===================================================================
--- mlton/trunk/doc/guide/CallGraph 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/CallGraph 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
Modified: mlton/trunk/doc/guide/CallingFromCToSML
===================================================================
--- mlton/trunk/doc/guide/CallingFromCToSML 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/CallingFromCToSML 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -61,8 +61,8 @@
<pre>Int32 foo (Real64 x0, Char x1);
</pre>The <tt>_export</tt> expression denotes a function of type <tt>(real * char -> int) -> unit</tt> that when called with a function <tt>f</tt>, arranges for the exported <tt>foo</tt> function to call <tt>f</tt> when <tt>foo</tt> is called. So, for example, the following exports and defines <tt>foo</tt>.
<pre class=code>
-<B><FONT COLOR="#A020F0">val</FONT></B> e <B><FONT COLOR="#5F9EA0">=</FONT></B> _export <B><FONT COLOR="#BC8F8F">"foo"</FONT></B>: (<B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">char</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">int</FONT></B>) <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>;
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> e (<B><FONT COLOR="#A020F0">fn</FONT></B> (x, c) <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> 13 <B><FONT COLOR="#5F9EA0">+</FONT></B> Real.floor x <B><FONT COLOR="#5F9EA0">+</FONT></B> Char.ord c)
+<B><FONT COLOR="#A020F0">val</FONT></B> e = _export <B><FONT COLOR="#BC8F8F">"foo"</FONT></B>: (real * char -> int) -> unit;
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = e (<B><FONT COLOR="#A020F0">fn</FONT></B> (x, c) => <B><FONT COLOR="#5F9EA0">13</FONT></B> + Real.floor x + Char.ord c)
</PRE>
<p>
@@ -83,40 +83,40 @@
Suppose that <tt>export.sml</tt> is
</p>
<p>
-<pre class=code><B><FONT COLOR="#A020F0">val</FONT></B> e <B><FONT COLOR="#5F9EA0">=</FONT></B> _export <B><FONT COLOR="#BC8F8F">"f"</FONT></B>: (<B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">char</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">char</FONT></B>) <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>;
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> e (<B><FONT COLOR="#A020F0">fn</FONT></B> (i, r, _) <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B>
- (<B><FONT COLOR="#A020F0">print</FONT></B> (<B><FONT COLOR="#A020F0">concat</FONT></B> [<B><FONT COLOR="#BC8F8F">"i = "</FONT></B>, Int.toString i,
+<pre class=code><B><FONT COLOR="#A020F0">val</FONT></B> e = _export <B><FONT COLOR="#BC8F8F">"f"</FONT></B>: (int * real * char -> char) -> unit;
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = e (<B><FONT COLOR="#A020F0">fn</FONT></B> (i, r, _) =>
+ (print (concat [<B><FONT COLOR="#BC8F8F">"i = "</FONT></B>, Int.toString i,
<B><FONT COLOR="#BC8F8F">" r = "</FONT></B>, Real.toString r, <B><FONT COLOR="#BC8F8F">"\n"</FONT></B>])
; #<B><FONT COLOR="#BC8F8F">"g"</FONT></B>))
-<B><FONT COLOR="#A020F0">val</FONT></B> g <B><FONT COLOR="#5F9EA0">=</FONT></B> _import <B><FONT COLOR="#BC8F8F">"g"</FONT></B>: <B><FONT COLOR="#228B22">unit</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>;
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> g ()
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> g ()
-
-<B><FONT COLOR="#A020F0">val</FONT></B> e <B><FONT COLOR="#5F9EA0">=</FONT></B> _export <B><FONT COLOR="#BC8F8F">"f2"</FONT></B>: (Word8.<B><FONT COLOR="#228B22">word</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">word</FONT></B> <B><FONT COLOR="#228B22">array</FONT></B>) <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>;
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> e (<B><FONT COLOR="#A020F0">fn</FONT></B> w <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B>
- Array.tabulate (10, <B><FONT COLOR="#A020F0">fn</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> Word.fromLargeWord (Word8.toLargeWord w)))
-<B><FONT COLOR="#A020F0">val</FONT></B> g2 <B><FONT COLOR="#5F9EA0">=</FONT></B> _import <B><FONT COLOR="#BC8F8F">"g2"</FONT></B>: <B><FONT COLOR="#228B22">unit</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">word</FONT></B> <B><FONT COLOR="#228B22">array</FONT></B>;
-<B><FONT COLOR="#A020F0">val</FONT></B> a <B><FONT COLOR="#5F9EA0">=</FONT></B> g2 ()
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#A020F0">print</FONT></B> (<B><FONT COLOR="#A020F0">concat</FONT></B> [<B><FONT COLOR="#BC8F8F">"0wx"</FONT></B>, Word.toString (Array.sub (a, 0)), <B><FONT COLOR="#BC8F8F">"\n"</FONT></B>])
+<B><FONT COLOR="#A020F0">val</FONT></B> g = _import <B><FONT COLOR="#BC8F8F">"g"</FONT></B>: unit -> unit;
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = g ()
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = g ()
-<B><FONT COLOR="#A020F0">val</FONT></B> e <B><FONT COLOR="#5F9EA0">=</FONT></B> _export <B><FONT COLOR="#BC8F8F">"f3"</FONT></B>: (<B><FONT COLOR="#228B22">unit</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>) <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>;
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> e (<B><FONT COLOR="#A020F0">fn</FONT></B> () <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#A020F0">print</FONT></B> <B><FONT COLOR="#BC8F8F">"hello\n"</FONT></B>);
-<B><FONT COLOR="#A020F0">val</FONT></B> g3 <B><FONT COLOR="#5F9EA0">=</FONT></B> _import <B><FONT COLOR="#BC8F8F">"g3"</FONT></B>: <B><FONT COLOR="#228B22">unit</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>;
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> g3 ()
+<B><FONT COLOR="#A020F0">val</FONT></B> e = _export <B><FONT COLOR="#BC8F8F">"f2"</FONT></B>: (Word8.word -> word array) -> unit;
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = e (<B><FONT COLOR="#A020F0">fn</FONT></B> w =>
+ Array.tabulate (<B><FONT COLOR="#5F9EA0">10</FONT></B>, <B><FONT COLOR="#A020F0">fn</FONT></B> _ => Word.fromLargeWord (Word8.toLargeWord w)))
+<B><FONT COLOR="#A020F0">val</FONT></B> g2 = _import <B><FONT COLOR="#BC8F8F">"g2"</FONT></B>: unit -> word array;
+<B><FONT COLOR="#A020F0">val</FONT></B> a = g2 ()
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = print (concat [<B><FONT COLOR="#BC8F8F">"0wx"</FONT></B>, Word.toString (Array.sub (a, <B><FONT COLOR="#5F9EA0">0</FONT></B>)), <B><FONT COLOR="#BC8F8F">"\n"</FONT></B>])
+<B><FONT COLOR="#A020F0">val</FONT></B> e = _export <B><FONT COLOR="#BC8F8F">"f3"</FONT></B>: (unit -> unit) -> unit;
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = e (<B><FONT COLOR="#A020F0">fn</FONT></B> () => print <B><FONT COLOR="#BC8F8F">"hello\n"</FONT></B>);
+<B><FONT COLOR="#A020F0">val</FONT></B> g3 = _import <B><FONT COLOR="#BC8F8F">"g3"</FONT></B>: unit -> unit;
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = g3 ()
+
<I><FONT COLOR="#B22222">(* This example demonstrates mutual recursion between C and SML. *)</FONT></I>
-<B><FONT COLOR="#A020F0">val</FONT></B> e <B><FONT COLOR="#5F9EA0">=</FONT></B> _export <B><FONT COLOR="#BC8F8F">"f4"</FONT></B>: (<B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>) <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>;
-<B><FONT COLOR="#A020F0">val</FONT></B> g4 <B><FONT COLOR="#5F9EA0">=</FONT></B> _import <B><FONT COLOR="#BC8F8F">"g4"</FONT></B>: <B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>;
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> e (<B><FONT COLOR="#A020F0">fn</FONT></B> i <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#A020F0">if</FONT></B> i <B><FONT COLOR="#5F9EA0">=</FONT></B> 0 <B><FONT COLOR="#A020F0">then</FONT></B> () <B><FONT COLOR="#A020F0">else</FONT></B> g4 (i <B><FONT COLOR="#5F9EA0">-</FONT></B> 1))
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> g4 13
+<B><FONT COLOR="#A020F0">val</FONT></B> e = _export <B><FONT COLOR="#BC8F8F">"f4"</FONT></B>: (int -> unit) -> unit;
+<B><FONT COLOR="#A020F0">val</FONT></B> g4 = _import <B><FONT COLOR="#BC8F8F">"g4"</FONT></B>: int -> unit;
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = e (<B><FONT COLOR="#A020F0">fn</FONT></B> i => <B><FONT COLOR="#A020F0">if</FONT></B> i = <B><FONT COLOR="#5F9EA0">0</FONT></B> <B><FONT COLOR="#A020F0">then</FONT></B> () <B><FONT COLOR="#A020F0">else</FONT></B> g4 (i - <B><FONT COLOR="#5F9EA0">1</FONT></B>))
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = g4 <B><FONT COLOR="#5F9EA0">13</FONT></B>
-<B><FONT COLOR="#A020F0">val</FONT></B> (_, zzzSet) <B><FONT COLOR="#5F9EA0">=</FONT></B> _symbol <B><FONT COLOR="#BC8F8F">"zzz"</FONT></B> alloc: (<B><FONT COLOR="#228B22">unit</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">int</FONT></B>) <B><FONT COLOR="#5F9EA0">*</FONT></B> (<B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>);
-<B><FONT COLOR="#A020F0">val</FONT></B> () <B><FONT COLOR="#5F9EA0">=</FONT></B> zzzSet 42
-<B><FONT COLOR="#A020F0">val</FONT></B> g5 <B><FONT COLOR="#5F9EA0">=</FONT></B> _import <B><FONT COLOR="#BC8F8F">"g5"</FONT></B>: <B><FONT COLOR="#228B22">unit</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>;
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> g5 ()
-
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#A020F0">print</FONT></B> <B><FONT COLOR="#BC8F8F">"success\n"</FONT></B>
+<B><FONT COLOR="#A020F0">val</FONT></B> (_, zzzSet) = _symbol <B><FONT COLOR="#BC8F8F">"zzz"</FONT></B> alloc: (unit -> int) * (int -> unit);
+<B><FONT COLOR="#A020F0">val</FONT></B> () = zzzSet <B><FONT COLOR="#5F9EA0">42</FONT></B>
+<B><FONT COLOR="#A020F0">val</FONT></B> g5 = _import <B><FONT COLOR="#BC8F8F">"g5"</FONT></B>: unit -> unit;
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = g5 ()
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = print <B><FONT COLOR="#BC8F8F">"success\n"</FONT></B>
+
</PRE>
</p>
@@ -145,7 +145,7 @@
#<B><FONT COLOR="#5F9EA0">include</FONT></B> <B><FONT COLOR="#BC8F8F">"export.h"</FONT></B>
<B><FONT COLOR="#228B22">void</FONT></B> <B><FONT COLOR="#0000FF">g</FONT></B> () {
- Char c;
+ Char8 c;
fprintf (stderr, <B><FONT COLOR="#BC8F8F">"g starting\n"</FONT></B>);
c = f (13, 17.15, <B><FONT COLOR="#BC8F8F">'a'</FONT></B>);
@@ -166,7 +166,7 @@
fprintf (stderr, <B><FONT COLOR="#BC8F8F">"g3 done\n"</FONT></B>);
}
-<B><FONT COLOR="#228B22">void</FONT></B> <B><FONT COLOR="#0000FF">g4</FONT></B> (Int i) {
+<B><FONT COLOR="#228B22">void</FONT></B> <B><FONT COLOR="#0000FF">g4</FONT></B> (Int32 i) {
fprintf (stderr, <B><FONT COLOR="#BC8F8F">"g4 (%d)\n"</FONT></B>, i);
f4 (i);
}
@@ -201,16 +201,12 @@
<li>
<p>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/tags/on-20061025-release/doc/examples/ffi/export.sml"><img src="moin-www.png" alt="[WWW]" height="11" width="11">export.sml</a>
-
+ <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/tags/on-20070709-release/doc/examples/ffi/export.sml"><img src="moin-www.png" alt="[WWW]" height="11" width="11">export.sml</a>
</p>
</li>
<li>
<p>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/tags/on-20061025-release/doc/examples/ffi/ffi-export.c"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ffi-export.c</a>
-
+ <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/tags/on-20070709-release/doc/examples/ffi/ffi-export.c"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ffi-export.c</a>
</p>
</li>
</ul>
@@ -221,5 +217,5 @@
<p>
<hr>
-Last edited on 2005-11-30 23:11:45 by <span title="ppp-71-139-183-221.dsl.snfc21.pacbell.net"><a href="StephenWeeks">StephenWeeks</a></span>.
+Last edited on 2006-11-02 17:34:21 by <span title="76.16.241.4"><a href="MatthewFluet">MatthewFluet</a></span>.
</body></html>
Modified: mlton/trunk/doc/guide/CallingFromSMLToC
===================================================================
--- mlton/trunk/doc/guide/CallingFromSMLToC 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/CallingFromSMLToC 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -75,23 +75,23 @@
<pre class=code><I><FONT COLOR="#B22222">(* main.sml *)</FONT></I>
<I><FONT COLOR="#B22222">(* Declare ffi to be implemented by calling the C function ffi. *)</FONT></I>
-<B><FONT COLOR="#A020F0">val</FONT></B> ffi <B><FONT COLOR="#5F9EA0">=</FONT></B> _import <B><FONT COLOR="#BC8F8F">"ffi"</FONT></B>: <B><FONT COLOR="#228B22">real</FONT></B> <B><FONT COLOR="#228B22">array</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#A020F0">ref</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">char</FONT></B>;
-<B><FONT COLOR="#A020F0">open</FONT></B> Array
+<B><FONT COLOR="#A020F0">val</FONT></B> ffi = _import <B><FONT COLOR="#BC8F8F">"ffi"</FONT></B>: real array * int ref * int -> char;
+<B><FONT COLOR="#0000FF">open</FONT></B> Array
-<B><FONT COLOR="#A020F0">val</FONT></B> size <B><FONT COLOR="#5F9EA0">=</FONT></B> 10
-<B><FONT COLOR="#A020F0">val</FONT></B> a <B><FONT COLOR="#5F9EA0">=</FONT></B> tabulate (size, <B><FONT COLOR="#A020F0">fn</FONT></B> i <B><FONT COLOR="#5F9EA0">=</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">real</FONT></B> i)
-<B><FONT COLOR="#A020F0">val</FONT></B> r <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#A020F0">ref</FONT></B> 0
-<B><FONT COLOR="#A020F0">val</FONT></B> n <B><FONT COLOR="#5F9EA0">=</FONT></B> 17
+<B><FONT COLOR="#A020F0">val</FONT></B> size = <B><FONT COLOR="#5F9EA0">10</FONT></B>
+<B><FONT COLOR="#A020F0">val</FONT></B> a = tabulate (size, <B><FONT COLOR="#A020F0">fn</FONT></B> i => real i)
+<B><FONT COLOR="#A020F0">val</FONT></B> r = ref <B><FONT COLOR="#5F9EA0">0</FONT></B>
+<B><FONT COLOR="#A020F0">val</FONT></B> n = <B><FONT COLOR="#5F9EA0">17</FONT></B>
<I><FONT COLOR="#B22222">(* Call the C function *)</FONT></I>
-<B><FONT COLOR="#A020F0">val</FONT></B> c <B><FONT COLOR="#5F9EA0">=</FONT></B> ffi (a, r, n)
+<B><FONT COLOR="#A020F0">val</FONT></B> c = ffi (a, r, n)
-<B><FONT COLOR="#A020F0">val</FONT></B> (nGet, nSet) <B><FONT COLOR="#5F9EA0">=</FONT></B> _symbol <B><FONT COLOR="#BC8F8F">"FFI_INT"</FONT></B>: (<B><FONT COLOR="#228B22">unit</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">int</FONT></B>) <B><FONT COLOR="#5F9EA0">*</FONT></B> (<B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>);
+<B><FONT COLOR="#A020F0">val</FONT></B> (nGet, nSet) = _symbol <B><FONT COLOR="#BC8F8F">"FFI_INT"</FONT></B>: (unit -> int) * (int -> unit);
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B> <B><FONT COLOR="#A020F0">print</FONT></B> (<B><FONT COLOR="#A020F0">concat</FONT></B> [Int.toString (nGet ()), <B><FONT COLOR="#BC8F8F">"\n"</FONT></B>])
+<B><FONT COLOR="#A020F0">val</FONT></B> _ = print (concat [Int.toString (nGet ()), <B><FONT COLOR="#BC8F8F">"\n"</FONT></B>])
-<B><FONT COLOR="#A020F0">val</FONT></B> _ <B><FONT COLOR="#5F9EA0">=</FONT></B>
- <B><FONT COLOR="#A020F0">print</FONT></B> (<B><FONT COLOR="#A020F0">if</FONT></B> c <B><FONT COLOR="#5F9EA0">=</FONT></B> #<B><FONT COLOR="#BC8F8F">"c"</FONT></B> <B><FONT COLOR="#A020F0">andalso</FONT></B> <B><FONT COLOR="#5F9EA0">!</FONT></B>r <B><FONT COLOR="#5F9EA0">=</FONT></B> 45
+<B><FONT COLOR="#A020F0">val</FONT></B> _ =
+ print (<B><FONT COLOR="#A020F0">if</FONT></B> c = #<B><FONT COLOR="#BC8F8F">"c"</FONT></B> <B><FONT COLOR="#A020F0">andalso</FONT></B> !r = <B><FONT COLOR="#5F9EA0">45</FONT></B>
<B><FONT COLOR="#A020F0">then</FONT></B> <B><FONT COLOR="#BC8F8F">"success\n"</FONT></B>
<B><FONT COLOR="#A020F0">else</FONT></B> <B><FONT COLOR="#BC8F8F">"fail\n"</FONT></B>)
</PRE>
@@ -103,19 +103,19 @@
<p>
<pre class=code>#<B><FONT COLOR="#5F9EA0">include</FONT></B> <B><FONT COLOR="#BC8F8F">"platform.h"</FONT></B>
-Int FFI_INT = 13;
-Word FFI_WORD = 0xFF;
+Int32 FFI_INT = 13;
+Word32 FFI_WORD = 0xFF;
Bool FFI_BOOL = TRUE;
-Real FFI_REAL = 3.14159;
+Real64 FFI_REAL = 3.14159;
-Char <B><FONT COLOR="#0000FF">ffi</FONT></B> (Pointer a1, Pointer a2, Int n) {
+Char8 <B><FONT COLOR="#0000FF">ffi</FONT></B> (Pointer a1, Pointer a2, Int32 n) {
<B><FONT COLOR="#228B22">double</FONT></B> *ds = (<B><FONT COLOR="#228B22">double</FONT></B>*)a1;
<B><FONT COLOR="#228B22">int</FONT></B> *p = (<B><FONT COLOR="#228B22">int</FONT></B>*)a2;
<B><FONT COLOR="#228B22">int</FONT></B> i;
<B><FONT COLOR="#228B22">double</FONT></B> sum;
sum = 0.0;
- <B><FONT COLOR="#A020F0">for</FONT></B> (i = 0; i < GC_arrayNumElements (a1); ++i) {
+ <B><FONT COLOR="#A020F0">for</FONT></B> (i = 0; i < GC_getArrayLength (a1); ++i) {
sum += ds[i];
ds[i] += n;
}
@@ -139,16 +139,12 @@
<li>
<p>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/tags/on-20061025-release/doc/examples/ffi/import.sml"><img src="moin-www.png" alt="[WWW]" height="11" width="11">import.sml</a>
-
+ <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/tags/on-20070709-release/doc/examples/ffi/import.sml"><img src="moin-www.png" alt="[WWW]" height="11" width="11">import.sml</a>
</p>
</li>
<li>
<p>
-
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/tags/on-20061025-release/doc/examples/ffi/ffi-import.c"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ffi-import.c</a>
-
+ <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/tags/on-20070709-release/doc/examples/ffi/ffi-import.c"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ffi-import.c</a>
</p>
</li>
@@ -172,5 +168,5 @@
<p>
<hr>
-Last edited on 2005-12-02 04:17:30 by <span title="ppp-71-139-183-221.dsl.snfc21.pacbell.net"><a href="StephenWeeks">StephenWeeks</a></span>.
+Last edited on 2006-11-14 01:25:50 by <span title="76.16.241.4"><a href="MatthewFluet">MatthewFluet</a></span>.
</body></html>
Modified: mlton/trunk/doc/guide/CallingFromSMLToCFunctionPointer
===================================================================
--- mlton/trunk/doc/guide/CallingFromSMLToCFunctionPointer 2007-07-09 04:51:00 UTC (rev 5744)
+++ mlton/trunk/doc/guide/CallingFromSMLToCFunctionPointer 2007-07-09 05:11:01 UTC (rev 5745)
@@ -31,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20061025</a>
+ <a class = mltona href="Home">MLton 20070709</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -74,83 +74,83 @@
This example uses <tt>dlopen</tt> and friends (imported using normal <tt>_import</tt>) to dynamically load the math library (<tt>libm</tt>) and call the <tt>cos</tt> function. Suppose <tt>iimport.sml</tt> contains the following.
</p>
<p>
-<pre class=code><B><FONT COLOR="#5F9EA0">signature</FONT></B> DYN_LINK <B><FONT COLOR="#5F9EA0">=</FONT></B>
- <B><FONT COLOR="#5F9EA0">sig</FONT></B>
- <B><FONT COLOR="#A020F0">type</FONT></B> hndl
- <B><FONT COLOR="#A020F0">type</FONT></B> mode
- <B><FONT COLOR="#A020F0">type</FONT></B> fptr
+<pre class=code><B><FONT COLOR="#0000FF">signature</FONT></B> DYN_LINK =
+ <B><FONT COLOR="#0000FF">sig</FONT></B>
+ <B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> hndl
+ </FONT></B><B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> mode
+ </FONT></B><B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> fptr
- <B><FONT COLOR="#A020F0">val</FONT></B> dlopen : <B><FONT COLOR="#228B22">string</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> mode <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> hndl
- <B><FONT COLOR="#A020F0">val</FONT></B> dlsym : hndl <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">string</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> fptr
- <B><FONT COLOR="#A020F0">val</FONT></B> dlclose : hndl <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> <B><FONT COLOR="#228B22">unit</FONT></B>
+ </FONT></B><B><FONT COLOR="#A020F0">val</FONT></B> dlopen : string * mode -> hndl
+ <B><FONT COLOR="#A020F0">val</FONT></B> dlsym : hndl * string -> fptr
+ <B><FONT COLOR="#A020F0">val</FONT></B> dlclose : hndl -> unit
<B><FONT COLOR="#A020F0">val</FONT></B> RTLD_LAZY : mode
<B><FONT COLOR="#A020F0">val</FONT></B> RTLD_NOW : mode
- <B><FONT COLOR="#A020F0">end</FONT></B>
+ <B><FONT COLOR="#0000FF">end</FONT></B>
-<B><FONT COLOR="#5F9EA0">structure</FONT></B> DynLink :<B><FONT COLOR="#5F9EA0">></FONT></B> DYN_LINK <B><FONT COLOR="#5F9EA0">=</FONT></B>
- <B><FONT COLOR="#5F9EA0">struct</FONT></B>
- <B><FONT COLOR="#A020F0">type</FONT></B> hndl <B><FONT COLOR="#5F9EA0">=</FONT></B> MLton.Pointer.t
- <B><FONT COLOR="#A020F0">type</FONT></B> mode <B><FONT COLOR="#5F9EA0">=</FONT></B> Word32.<B><FONT COLOR="#228B22">word</FONT></B>
- <B><FONT COLOR="#A020F0">type</FONT></B> fptr <B><FONT COLOR="#5F9EA0">=</FONT></B> MLton.Pointer.t
+<B><FONT COLOR="#0000FF">structure</FONT></B> DynLink :> DYN_LINK =
+ <B><FONT COLOR="#0000FF">struct</FONT></B>
+ <B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> hndl </FONT></B>=<B><FONT COLOR="#228B22"> MLton.Pointer.t
+ </FONT></B><B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> mode </FONT></B>=<B><FONT COLOR="#228B22"> Word32.word
+ </FONT></B><B><FONT COLOR="#A020F0">type</FONT></B><B><FONT COLOR="#228B22"> fptr </FONT></B>=<B><FONT COLOR="#228B22"> MLton.Pointer.t
- <B><FONT COLOR="#A020F0">val</FONT></B> dlopen <B><FONT COLOR="#5F9EA0">=</FONT></B>
- _import <B><FONT COLOR="#BC8F8F">"dlopen"</FONT></B> : <B><FONT COLOR="#228B22">string</FONT></B> <B><FONT COLOR="#5F9EA0">*</FONT></B> mode <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> hndl;
- <B><FONT COLOR="#A020F0">val</FONT></B> dlerror <B><FONT COLOR="#5F9EA0">=</FONT></B>
- _import <B><FONT COLOR="#BC8F8F">"dlerror"</FONT></B>: <B><FONT COLOR="#228B22">unit</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> MLton.Pointer.t;
- <B><FONT COLOR="#A020F0">val</FONT></B> dlsym <B><FONT COLOR="#5F9EA0">=</FONT></B>
- _import <B><FONT COLOR="#BC8F8F">"dlsym"</FONT></B> : hndl <B><FONT COLOR="#5F9EA0">*</FONT></B> <B><FONT COLOR="#228B22">string</FONT></B> <B><FONT COLOR="#5F9EA0">-</FONT></B><B><FONT COLOR="#5F9EA0">></FONT></B> fptr;
- <B><FONT COLOR="#A020F0">val</FONT></B> dlclose <B><FONT COLOR="#5F9EA0">=</FONT></B>
-
More information about the MLton-commit
mailing list