[MLton-commit] r4811
Matthew Fluet
fluet at mlton.org
Mon Nov 6 19:46:42 PST 2006
Merge trunk revisions 4663:4810 into x86_64 branch
----------------------------------------------------------------------
U mlton/branches/on-20050822-x86_64-branch/Makefile
U mlton/branches/on-20050822-x86_64-branch/basis-library/arrays-and-vectors/mono-vector.sig
U mlton/branches/on-20050822-x86_64-branch/basis-library/real/real.sml
U mlton/branches/on-20050822-x86_64-branch/bin/make-pdf-guide
U mlton/branches/on-20050822-x86_64-branch/doc/changelog
U mlton/branches/on-20050822-x86_64-branch/doc/guide/AST
U mlton/branches/on-20050822-x86_64-branch/doc/guide/AccessControl
U mlton/branches/on-20050822-x86_64-branch/doc/guide/AdmitsEquality
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Alice
U mlton/branches/on-20050822-x86_64-branch/doc/guide/AllocateRegisters
U mlton/branches/on-20050822-x86_64-branch/doc/guide/AndreiFormiga
A mlton/branches/on-20050822-x86_64-branch/doc/guide/ArrayLiteral
U mlton/branches/on-20050822-x86_64-branch/doc/guide/BasisLibrary
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Bug
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Bugs20041109
A mlton/branches/on-20050822-x86_64-branch/doc/guide/Bugs20051202
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CKitLibrary
A mlton/branches/on-20050822-x86_64-branch/doc/guide/CMinusMinus
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CallGraph
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromCToSML
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromSMLToC
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromSMLToCFunctionPointer
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ChrisClearwater
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Chunkify
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Closure
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ClosureConvert
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CommonArg
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CommonBlock
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CommonSubexp
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CompilationManager
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CompileTimeOptions
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CompilerOverview
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CompilerPassTemplate
A mlton/branches/on-20050822-x86_64-branch/doc/guide/CompilingWithSMLNJ
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ConcurrentML
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ConcurrentMLImplementation
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ConstantPropagation
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Contact
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Contify
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CoreML
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CoreMLSimplify
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CreatingPages
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Credits
U mlton/branches/on-20050822-x86_64-branch/doc/guide/CrossCompiling
U mlton/branches/on-20050822-x86_64-branch/doc/guide/DeadCode
U mlton/branches/on-20050822-x86_64-branch/doc/guide/DeepFlatten
U mlton/branches/on-20050822-x86_64-branch/doc/guide/DefineTypeBeforeUse
U mlton/branches/on-20050822-x86_64-branch/doc/guide/DefinitionOfStandardML
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Defunctorize
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Developers
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Development
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Documentation
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Drawbacks
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Eclipse
U mlton/branches/on-20050822-x86_64-branch/doc/guide/EditingPages
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Elaborate
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Emacs
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Enscript
U mlton/branches/on-20050822-x86_64-branch/doc/guide/EqualityType
U mlton/branches/on-20050822-x86_64-branch/doc/guide/EqualityTypeVariable
A mlton/branches/on-20050822-x86_64-branch/doc/guide/EtaExpansion
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Experimental
U mlton/branches/on-20050822-x86_64-branch/doc/guide/FAQ
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Features
U mlton/branches/on-20050822-x86_64-branch/doc/guide/FirstClassPolymorphism
A mlton/branches/on-20050822-x86_64-branch/doc/guide/Fixpoints
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Flatten
A mlton/branches/on-20050822-x86_64-branch/doc/guide/Fold
A mlton/branches/on-20050822-x86_64-branch/doc/guide/Fold01N
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ForLoops
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ForeignFunctionInterface
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ForeignFunctionInterfaceSyntax
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ForeignFunctionInterfaceTypes
U mlton/branches/on-20050822-x86_64-branch/doc/guide/FrontEnd
U mlton/branches/on-20050822-x86_64-branch/doc/guide/FunctionalRecordUpdate
U mlton/branches/on-20050822-x86_64-branch/doc/guide/GarbageCollection
U mlton/branches/on-20050822-x86_64-branch/doc/guide/GenerativeDatatype
U mlton/branches/on-20050822-x86_64-branch/doc/guide/GenerativeException
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Glade
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Globalize
U mlton/branches/on-20050822-x86_64-branch/doc/guide/GnuMP
U mlton/branches/on-20050822-x86_64-branch/doc/guide/HaMLet
U mlton/branches/on-20050822-x86_64-branch/doc/guide/HenryCejtin
U mlton/branches/on-20050822-x86_64-branch/doc/guide/History
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Home
U mlton/branches/on-20050822-x86_64-branch/doc/guide/HowProfilingWorks
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Identifier
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Immutable
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ImperativeTypeVariable
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ImplementExceptions
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ImplementHandlers
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ImplementProfiling
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ImplementSuffix
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Index
U mlton/branches/on-20050822-x86_64-branch/doc/guide/InfixingOperators
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Inline
U mlton/branches/on-20050822-x86_64-branch/doc/guide/InsertLimitChecks
U mlton/branches/on-20050822-x86_64-branch/doc/guide/InsertSignalChecks
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Installation
U mlton/branches/on-20050822-x86_64-branch/doc/guide/IntermediateLanguage
U mlton/branches/on-20050822-x86_64-branch/doc/guide/IntroduceLoops
U mlton/branches/on-20050822-x86_64-branch/doc/guide/JesperLouisAndersen
U mlton/branches/on-20050822-x86_64-branch/doc/guide/JohnnyAndersen
U mlton/branches/on-20050822-x86_64-branch/doc/guide/KnownCase
A mlton/branches/on-20050822-x86_64-branch/doc/guide/LLVM
A mlton/branches/on-20050822-x86_64-branch/doc/guide/LambdaCalculus
U mlton/branches/on-20050822-x86_64-branch/doc/guide/LambdaFree
U mlton/branches/on-20050822-x86_64-branch/doc/guide/LanguageChanges
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Lazy
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Libraries
U mlton/branches/on-20050822-x86_64-branch/doc/guide/License
U mlton/branches/on-20050822-x86_64-branch/doc/guide/LineDirective
U mlton/branches/on-20050822-x86_64-branch/doc/guide/LocalFlatten
U mlton/branches/on-20050822-x86_64-branch/doc/guide/LocalRef
U mlton/branches/on-20050822-x86_64-branch/doc/guide/LoopInvariant
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ML
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLBasis
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLBasisAnnotationExamples
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLBasisAnnotations
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLBasisAvailableLibraries
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLBasisExamples
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLBasisPathMap
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLBasisSyntaxAndSemantics
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLKit
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLNLFFI
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLNLFFIImplementation
A mlton/branches/on-20050822-x86_64-branch/doc/guide/MLRISCLibrary
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLj
A mlton/branches/on-20050822-x86_64-branch/doc/guide/MLmon
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonArray
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonBinIO
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonCont
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonExn
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonFinalizable
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonGC
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonIO
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonIntInf
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonItimer
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonPlatform
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonPointer
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonProcEnv
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonProcess
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonProfile
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonRandom
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonRlimit
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonRusage
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonSignal
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonSocket
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonStructure
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonSyslog
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonTextIO
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonThread
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonVector
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonWeak
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonWord
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLtonWorld
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Machine
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ManualPage
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MatchCompilation
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MatchCompile
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MatthewFluet
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MichaelNorrish
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MikeThomas
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MoinMoin
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Monomorphise
U mlton/branches/on-20050822-x86_64-branch/doc/guide/MoscowML
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Multi
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Mutable
A mlton/branches/on-20050822-x86_64-branch/doc/guide/NumericLiteral
U mlton/branches/on-20050822-x86_64-branch/doc/guide/OCaml
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ObjectOrientedProgramming
U mlton/branches/on-20050822-x86_64-branch/doc/guide/OpenGL
U mlton/branches/on-20050822-x86_64-branch/doc/guide/OperatorPrecedence
U mlton/branches/on-20050822-x86_64-branch/doc/guide/OptionalArguments
U mlton/branches/on-20050822-x86_64-branch/doc/guide/OrphanedPages
U mlton/branches/on-20050822-x86_64-branch/doc/guide/OtherSites
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Overloading
U mlton/branches/on-20050822-x86_64-branch/doc/guide/PackedRepresentation
U mlton/branches/on-20050822-x86_64-branch/doc/guide/PageSize
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ParallelMove
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Performance
U mlton/branches/on-20050822-x86_64-branch/doc/guide/PhantomType
U mlton/branches/on-20050822-x86_64-branch/doc/guide/PlatformSpecificNotes
U mlton/branches/on-20050822-x86_64-branch/doc/guide/PolyEqual
U mlton/branches/on-20050822-x86_64-branch/doc/guide/PolyML
U mlton/branches/on-20050822-x86_64-branch/doc/guide/PolymorphicEquality
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Polyvariance
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Poplog
A mlton/branches/on-20050822-x86_64-branch/doc/guide/PortStatus
U mlton/branches/on-20050822-x86_64-branch/doc/guide/PortingMLton
U mlton/branches/on-20050822-x86_64-branch/doc/guide/PrecedenceParse
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Printf
U mlton/branches/on-20050822-x86_64-branch/doc/guide/PrintfGentle
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ProductType
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Profiling
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ProfilingAllocation
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ProfilingCounts
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ProfilingTheStack
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ProfilingTime
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Projects
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Pronounce
U mlton/branches/on-20050822-x86_64-branch/doc/guide/PropertyList
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RSSA
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RSSAShrink
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RSSASimplify
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RayRacine
A mlton/branches/on-20050822-x86_64-branch/doc/guide/Reachability
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Redundant
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RedundantTests
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RefFlatten
U mlton/branches/on-20050822-x86_64-branch/doc/guide/References
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Regions
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ReleaseChecklist
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RemoveUnused
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Restore
A mlton/branches/on-20050822-x86_64-branch/doc/guide/Roadmap
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RunTimeOptions
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RunningOnCygwin
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RunningOnDarwin
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RunningOnFreeBSD
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RunningOnLinux
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RunningOnMinGW
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RunningOnNetBSD
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RunningOnOpenBSD
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RunningOnPowerPC
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RunningOnSolaris
U mlton/branches/on-20050822-x86_64-branch/doc/guide/RunningOnSparc
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SMLNET
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SMLNJ
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SMLNJDeviations
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SMLNJLibrary
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SMLofNJStructure
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SSA
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SSA2
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SSA2Simplify
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SSASimplify
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SXML
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SXMLShrink
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SXMLSimplify
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ScopeInference
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SelfCompiling
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Serialization
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ShowBasis
A mlton/branches/on-20050822-x86_64-branch/doc/guide/ShowProf
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Shrink
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SimplifyTypes
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Sources
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SpaceSafety
A mlton/branches/on-20050822-x86_64-branch/doc/guide/Stabilizers
U mlton/branches/on-20050822-x86_64-branch/doc/guide/StandardML
U mlton/branches/on-20050822-x86_64-branch/doc/guide/StandardMLBooks
A mlton/branches/on-20050822-x86_64-branch/doc/guide/StandardMLGotchas
U mlton/branches/on-20050822-x86_64-branch/doc/guide/StandardMLHistory
U mlton/branches/on-20050822-x86_64-branch/doc/guide/StandardMLImplementations
U mlton/branches/on-20050822-x86_64-branch/doc/guide/StandardMLPortability
U mlton/branches/on-20050822-x86_64-branch/doc/guide/StandardMLTutorials
U mlton/branches/on-20050822-x86_64-branch/doc/guide/StephenWeeks
U mlton/branches/on-20050822-x86_64-branch/doc/guide/StyleGuide
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Subversion
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SureshJagannathan
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Survey
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SurveyDone
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Swerve
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SyntacticConventions
U mlton/branches/on-20050822-x86_64-branch/doc/guide/SystemInfo
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TILT
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Talk
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TalkDiveIn
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TalkFolkLore
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TalkFromSMLTo
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TalkHowHigherOrder
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TalkHowModules
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TalkHowPolymorphism
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TalkMLtonApproach
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TalkMLtonFeatures
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TalkMLtonHistory
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TalkStandardML
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TalkTemplate
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TalkWholeProgram
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ToMachine
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ToRSSA
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ToSSA2
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TomMurphy
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TrustedGroup
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TypeChecking
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TypeConstructor
A mlton/branches/on-20050822-x86_64-branch/doc/guide/TypeIndexedValues
U mlton/branches/on-20050822-x86_64-branch/doc/guide/TypeVariableScope
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Unicode
U mlton/branches/on-20050822-x86_64-branch/doc/guide/UniversalType
U mlton/branches/on-20050822-x86_64-branch/doc/guide/UnresolvedBugs
U mlton/branches/on-20050822-x86_64-branch/doc/guide/UnsafeStructure
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Useless
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Users
A mlton/branches/on-20050822-x86_64-branch/doc/guide/Utilities
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ValueRestriction
A mlton/branches/on-20050822-x86_64-branch/doc/guide/VariableArityPolymorphism
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Variant
U mlton/branches/on-20050822-x86_64-branch/doc/guide/VesaKarvonen
U mlton/branches/on-20050822-x86_64-branch/doc/guide/WantedPages
U mlton/branches/on-20050822-x86_64-branch/doc/guide/WebSite
U mlton/branches/on-20050822-x86_64-branch/doc/guide/WesleyTerpstra
U mlton/branches/on-20050822-x86_64-branch/doc/guide/WholeProgramOptimization
U mlton/branches/on-20050822-x86_64-branch/doc/guide/WikiMacros
U mlton/branches/on-20050822-x86_64-branch/doc/guide/WikiName
U mlton/branches/on-20050822-x86_64-branch/doc/guide/WikiTool
U mlton/branches/on-20050822-x86_64-branch/doc/guide/XML
U mlton/branches/on-20050822-x86_64-branch/doc/guide/XMLShrink
U mlton/branches/on-20050822-x86_64-branch/doc/guide/XMLSimplify
U mlton/branches/on-20050822-x86_64-branch/doc/guide/XMLSimplifyTypes
U mlton/branches/on-20050822-x86_64-branch/doc/guide/ZZZOrphanedPages
U mlton/branches/on-20050822-x86_64-branch/doc/guide/Zone
U mlton/branches/on-20050822-x86_64-branch/doc/guide/eXene
U mlton/branches/on-20050822-x86_64-branch/doc/guide/fxp
U mlton/branches/on-20050822-x86_64-branch/doc/guide/index.html
U mlton/branches/on-20050822-x86_64-branch/doc/guide/mGTK
U mlton/branches/on-20050822-x86_64-branch/doc/license/MLton-LICENSE
A mlton/branches/on-20050822-x86_64-branch/doc/license/NEC-LICENSE
U mlton/branches/on-20050822-x86_64-branch/ide/emacs/esml-mlb-mode.el
U mlton/branches/on-20050822-x86_64-branch/include/x86-main.h
U mlton/branches/on-20050822-x86_64-branch/lib/ckit-lib/Makefile
A mlton/branches/on-20050822-x86_64-branch/lib/mlnlffi/memory/platform/memory.amd64-freebsd.mlb
A mlton/branches/on-20050822-x86_64-branch/lib/mlnlffi/memory/platform/memory.amd64-netbsd.mlb
A mlton/branches/on-20050822-x86_64-branch/lib/mlnlffi/memory/platform/memory.amd64-openbsd.mlb
A mlton/branches/on-20050822-x86_64-branch/lib/mlnlffi/memory/platform/memory.x86-darwin.mlb
U mlton/branches/on-20050822-x86_64-branch/lib/mlrisc-lib/MLRISC.patch
U mlton/branches/on-20050822-x86_64-branch/lib/mlrisc-lib/Makefile
U mlton/branches/on-20050822-x86_64-branch/lib/mlton/basic/http.sml
U mlton/branches/on-20050822-x86_64-branch/lib/smlnj-lib/Makefile
U mlton/branches/on-20050822-x86_64-branch/mlton/codegen/x86-codegen/x86-allocate-registers.fun
U mlton/branches/on-20050822-x86_64-branch/mlton/codegen/x86-codegen/x86-codegen.fun
U mlton/branches/on-20050822-x86_64-branch/mlton/codegen/x86-codegen/x86-generate-transfers.fun
U mlton/branches/on-20050822-x86_64-branch/mlton/codegen/x86-codegen/x86-mlton-basic.sig
U mlton/branches/on-20050822-x86_64-branch/mlton/codegen/x86-codegen/x86-translate.fun
U mlton/branches/on-20050822-x86_64-branch/mlton/codegen/x86-codegen/x86-validate.fun
U mlton/branches/on-20050822-x86_64-branch/mlton/codegen/x86-codegen/x86.fun
U mlton/branches/on-20050822-x86_64-branch/mlton/codegen/x86-codegen/x86.sig
U mlton/branches/on-20050822-x86_64-branch/mlton/front-end/mlb.grm
U mlton/branches/on-20050822-x86_64-branch/mlton/main/main.fun
U mlton/branches/on-20050822-x86_64-branch/mlton/ssa/useless.fun
U mlton/branches/on-20050822-x86_64-branch/package/debian/changelog
U mlton/branches/on-20050822-x86_64-branch/package/debian/control
U mlton/branches/on-20050822-x86_64-branch/runtime/platform/darwin.c
----------------------------------------------------------------------
Modified: mlton/branches/on-20050822-x86_64-branch/Makefile
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/Makefile 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/Makefile 2006-11-07 03:45:26 UTC (rev 4811)
@@ -168,7 +168,7 @@
# do not change "make" to "$(MAKE)" in the following line
cd "$(BSDSRC)/package/freebsd" && MAINTAINER_MODE=yes make build-package
-LIBRARIES = ckit-lib cml mlnlffi-lib mlrisc-lib mlyacc-lib smlnj-lib
+LIBRARIES = ckit-lib cml mlnlffi-lib mlyacc-lib smlnj-lib
.PHONY: libraries-no-check
libraries-no-check:
@@ -180,9 +180,10 @@
$(CP) "$(SRC)/lib/cml/." "$(LIB)/sml/cml"
$(CP) "$(SRC)/lib/ckit-lib/ckit/." "$(LIB)/sml/ckit-lib"
$(CP) "$(SRC)/lib/mlnlffi/." "$(LIB)/sml/mlnlffi-lib"
- $(CP) "$(SRC)/lib/mlrisc-lib/MLRISC/." "$(LIB)/sml/mlrisc-lib"
+ true || $(CP) "$(SRC)/lib/mlrisc-lib/MLRISC/." "$(LIB)/sml/mlrisc-lib"
$(CP) "$(SRC)/lib/mlyacc/." "$(LIB)/sml/mlyacc-lib"
$(CP) "$(SRC)/lib/smlnj-lib/smlnj-lib/." "$(LIB)/sml/smlnj-lib"
+ find "$(LIB)/sml" -type d -name .cm | xargs rm -rf
find "$(LIB)/sml" -type d -name .svn | xargs rm -rf
find "$(LIB)/sml" -type f -name .ignore | xargs rm -rf
@@ -245,7 +246,7 @@
.PHONY: profiled
profiled:
for t in alloc count time; do \
- $(MAKE) -C "$(COMP)" "AOUT=$(AOUT).$$t" \
+ $(MAKE) -C "$(COMP)" "AOUT=$(AOUT).$$t" \
COMPILE_ARGS="-profile $$t"; \
$(CP) "$(COMP)/$(AOUT).$$t" "$(LIB)/"; \
"$(LIB)/$(AOUT).$$t" @MLton -- "$(LIB)/world.$$t"; \
Modified: mlton/branches/on-20050822-x86_64-branch/basis-library/arrays-and-vectors/mono-vector.sig
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library/arrays-and-vectors/mono-vector.sig 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library/arrays-and-vectors/mono-vector.sig 2006-11-07 03:45:26 UTC (rev 4811)
@@ -9,6 +9,7 @@
val collate: (elem * elem -> order) -> vector * vector -> order
val concat: vector list -> vector
val exists: (elem -> bool) -> vector -> bool
+ val find: (elem -> bool) -> vector -> elem option
val findi: (int * elem -> bool) -> vector -> (int * elem) option
val foldl: (elem * 'a -> 'a) -> 'a -> vector -> 'a
val foldli: (int * elem * 'a -> 'a) -> 'a -> vector -> 'a
Modified: mlton/branches/on-20050822-x86_64-branch/basis-library/real/real.sml
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library/real/real.sml 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library/real/real.sml 2006-11-07 03:45:26 UTC (rev 4811)
@@ -110,7 +110,7 @@
val nan = posInf + negInf
val class = IEEEReal.mkClass R.class
-
+
val abs =
if MLton.Codegen.isNative
then abs
@@ -120,13 +120,13 @@
INF => posInf
| NAN => x
| _ => if signBit x then ~x else x
-
+
fun isFinite r =
case class r of
INF => false
| NAN => false
| _ => true
-
+
val op == = Prim.==
val op != = not o op ==
@@ -199,7 +199,7 @@
| I.LESS => G.LESS
| I.UNORDERED => raise IEEEReal.Unordered
end
-
+
fun unordered (x, y) = isNan x orelse isNan y
val nextAfter: real * real -> real =
@@ -217,20 +217,23 @@
R.nextAfterDown r
else
R.nextAfterUp r
-
- fun toManExp x =
- case class x of
- INF => {exp = 0, man = x}
- | NAN => {exp = 0, man = nan}
- | ZERO => {exp = 0, man = x}
- | _ =>
- let
- val r: C_Int.t ref = ref 0
- val man = R.frexp (x, r)
- in
- {exp = C_Int.toInt (!r), man = man}
- end
+ local
+ val one = One.make (fn () => ref (0 : C_Int.t))
+ in
+ fun toManExp x =
+ case class x of
+ INF => {exp = 0, man = x}
+ | NAN => {exp = 0, man = nan}
+ | ZERO => {exp = 0, man = x}
+ | _ => One.use (one, fn r =>
+ let
+ val man = R.frexp (x, r)
+ in
+ {exp = C_Int.toInt (!r), man = man}
+ end)
+ end
+
fun fromManExp {exp, man} =
(R.ldexp (man, C_Int.fromInt exp))
handle Overflow =>
@@ -248,7 +251,7 @@
| _ => fromManExp {exp = exp, man = man}
local
- val oneInt = One.make (fn () => ref zero)
+ val one = One.make (fn () => ref zero)
in
fun split x =
case class x of
@@ -256,26 +259,25 @@
whole = x}
| NAN => {frac = nan, whole = nan}
| _ =>
- One.use
- (oneInt, fn int =>
- let
- val frac = R.modf (x, int)
- val whole = !int
- (* Some platforms' C libraries don't get sign of
- * zero right.
- *)
- fun fix y =
- if class y = ZERO andalso not (sameSign (x, y))
- then ~ y
- else y
- in
- {frac = fix frac,
- whole = fix whole}
- end)
+ let
+ val (frac, whole) =
+ One.use (one, fn int =>
+ (R.modf (x, int), !int))
+ (* Some platforms' C libraries don't get sign of
+ * zero right.
+ *)
+ fun fix y =
+ if class y = ZERO andalso not (sameSign (x, y))
+ then ~ y
+ else y
+ in
+ {frac = fix frac,
+ whole = fix whole}
+ end
end
-
+
val realMod = #frac o split
-
+
fun checkFloat x =
case class x of
INF => raise Overflow
@@ -363,7 +365,7 @@
(* toDecimal, fmt, toString: binary -> decimal conversions. *)
datatype mode = Fix | Gen | Sci
local
- val decpt: C_Int.int ref = ref 0
+ val one = One.make (fn () => ref (0: C_Int.int))
in
fun gdtoa (x: real, mode: mode, ndig: int) =
let
@@ -372,12 +374,13 @@
Fix => 3
| Gen => 0
| Sci => 2
- val cs = Prim.gdtoa (x, mode, C_Int.fromInt ndig, decpt)
in
- (cs, C_Int.toInt (!decpt))
+ One.use (one, fn decpt =>
+ (Prim.gdtoa (x, mode, ndig, decpt),
+ C_Int.toInt (!decpt)))
end
end
-
+
fun toDecimal (x: real): IEEEReal.decimal_approx =
case class x of
INF => {class = INF,
@@ -588,7 +591,7 @@
| _ => doit x
end
end
-
+
val toString = fmt (StringCvt.GEN NONE)
local
@@ -672,7 +675,7 @@
else (i, false)
val x = Prim.strto (NullString.nullTerm (IntInf.toString i))
in
- if sign then ~ x else x
+ if sign then ~ x else x
end
val toIntInfM: rounding_mode -> real -> LargeInt.int =
@@ -760,7 +763,7 @@
(* Patch functions to handle out-of-range args. Many C math
* libraries do not do what the SML Basis Spec requires.
*)
-
+
local
fun patch f x =
if x < ~one orelse x > one
@@ -855,13 +858,13 @@
INF => x
| ZERO => one
| _ => R.Math.cosh x
-
+
fun sinh x =
case class x of
INF => x
| ZERO => x
| _ => R.Math.sinh x
-
+
fun tanh x =
case class x of
INF => if x > zero then one else negOne
Modified: mlton/branches/on-20050822-x86_64-branch/bin/make-pdf-guide
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/bin/make-pdf-guide 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/bin/make-pdf-guide 2006-11-07 03:45:26 UTC (rev 4811)
@@ -29,7 +29,7 @@
pdf='mlton-guide.pdf'
script='.script'
titlepage='title.html'
-tmp='/tmp/mlton-guide'
+tmp="/tmp/mlton-guide.$$"
version=`date +%Y%m%d`
rm -rf "$tmp"
@@ -133,6 +133,4 @@
mv "$pdf" "$src/doc/guide"
-cd
-
rm -rf "$tmp"
Modified: mlton/branches/on-20050822-x86_64-branch/doc/changelog
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/changelog 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/changelog 2006-11-07 03:45:26 UTC (rev 4811)
@@ -1,5 +1,9 @@
Here are the changes since version 20051202.
+* 2006-08-03
+ - Fixed a bug in the "useless" SSA optimization, caused by calling
+ an imported C function and then ignoring the result.
+
* 2006-06-24
- Fixed a bug in pass to flatten data structures. Thanks to Joe Hurd
for the bug report.
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/AST
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/AST 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/AST 2006-11-07 03:45:26 UTC (rev 4811)
@@ -18,6 +18,12 @@
<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 = "
@@ -25,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -55,22 +61,22 @@
</p>
<h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2>
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051202-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.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-20051202-release/mlton/ast/ast-programs.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-programs.fun</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-20051202-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.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-20051202-release/mlton/ast/ast-modules.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-modules.fun</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-20051202-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.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-20051202-release/mlton/ast/ast-core.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast-core.fun</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-20051202-release/mlton/ast"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ast</a>
+<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>
<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>.
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/AccessControl
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/AccessControl 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/AccessControl 2006-11-07 03:45:26 UTC (rev 4811)
@@ -18,6 +18,12 @@
<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 = "
@@ -25,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/AdmitsEquality
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/AdmitsEquality 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/AdmitsEquality 2006-11-07 03:45:26 UTC (rev 4811)
@@ -18,6 +18,12 @@
<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 = "
@@ -25,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -58,7 +64,7 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> ('a1, ..., 'an) t </FONT></B>=<FONT COLOR="#228B22"><B> </FONT></B>...
+<B><FONT COLOR="#A020F0">type</FONT></B> ('a1, ..., 'an) t <B><FONT COLOR="#5F9EA0">=</FONT></B> ...
</PRE>
<p>
@@ -71,8 +77,8 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> bool * int
-</FONT></B></PRE>
+<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>
<p>
</p>
@@ -81,8 +87,8 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> bool * int * real
-</FONT></B></PRE>
+<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>
<p>
</p>
@@ -94,8 +100,8 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> bool * 'a
-</FONT></B></PRE>
+<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>
<p>
</p>
@@ -107,8 +113,8 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> real * 'a
-</FONT></B></PRE>
+<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>
<p>
</p>
@@ -120,20 +126,20 @@
</p>
<pre class=code>
-<B><FONT COLOR="#0000FF">structure</FONT></B> Ok: <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B><FONT COLOR="#228B22"><B> '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><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> bool * 'a
- </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B>
+<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>
</PRE>
<p>
</p>
<pre class=code>
-<B><FONT COLOR="#0000FF">structure</FONT></B> Bad: <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B><FONT COLOR="#228B22"><B> '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><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> real * int * 'a
- </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B>
+<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>
</PRE>
<p>
@@ -150,16 +156,16 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> bool </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> char * int
-</FONT></B></PRE>
+<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>
<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><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">C</FONT>
-</FONT></B></PRE>
+<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>
</p>
<p>
@@ -167,8 +173,8 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> bool * 'a </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> 'a
-</FONT></B></PRE>
+<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>
<p>
</p>
@@ -177,9 +183,9 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> 'a tA </FONT></B>=<FONT COLOR="#228B22"><B> bool * 'a
-</FONT></B><B><FONT COLOR="#A020F0">type</FONT></B><FONT COLOR="#228B22"><B> 'a tB </FONT></B>=<FONT COLOR="#228B22"><B> 'a
-</FONT></B></PRE>
+<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>
<p>
</p>
@@ -191,8 +197,8 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> bool * 'a </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> real * 'a
-</FONT></B></PRE>
+<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>
<p>
</p>
@@ -201,10 +207,10 @@
</p>
<pre class=code>
-<B><FONT COLOR="#0000FF">structure</FONT></B> Bad: <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B><FONT COLOR="#228B22"><B> '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><FONT COLOR="#228B22"><B> 'a t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> bool * 'a </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> real * 'a
- </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B>
+<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>
</PRE>
<p>
@@ -224,8 +230,8 @@
</p>
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> int * t
-</FONT></B></PRE>
+<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>
<p>
</p>
@@ -235,24 +241,24 @@
<p>
On the other hand, in the following declaration
<pre class=code>
-<B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> real * t
-</FONT></B></PRE>
+<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.
</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><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> u
-</FONT></B><B><FONT COLOR="#A020F0">and</FONT></B><FONT COLOR="#228B22"><B> u </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">C</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">D</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> t
-</FONT></B></PRE>
+<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>
</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><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> u * real
-</FONT></B><B><FONT COLOR="#A020F0">and</FONT></B><FONT COLOR="#228B22"><B> u </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">C</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">D</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> t
-</FONT></B></PRE>
+<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>
</p>
<p>
@@ -260,11 +266,11 @@
</p>
<pre class=code>
-<B><FONT COLOR="#0000FF">structure</FONT></B> Bad: <B><FONT COLOR="#0000FF">sig</FONT></B> <B><FONT COLOR="#A020F0">eqtype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B><B><FONT COLOR="#A020F0">eqtype</FONT></B><FONT COLOR="#228B22"><B> u </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B> =
- <B><FONT COLOR="#0000FF">struct</FONT></B>
- <B><FONT COLOR="#A020F0">datatype</FONT></B><FONT COLOR="#228B22"><B> t </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">A</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">B</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> u * real
- </FONT></B><B><FONT COLOR="#A020F0">and</FONT></B><FONT COLOR="#228B22"><B> u </FONT></B>=<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">C</FONT> </FONT></B>|<FONT COLOR="#228B22"><B> <FONT COLOR="#B8860B">D</FONT> <B><FONT COLOR="#A020F0">of</FONT></B> t
- </FONT></B><B><FONT COLOR="#0000FF">end</FONT></B>
+<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>
</PRE>
<p>
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/Alice
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/Alice 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/Alice 2006-11-07 03:45:26 UTC (rev 4811)
@@ -18,6 +18,12 @@
<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 = "
@@ -25,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/AllocateRegisters
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/AllocateRegisters 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/AllocateRegisters 2006-11-07 03:45:26 UTC (rev 4811)
@@ -18,6 +18,12 @@
<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 = "
@@ -25,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -55,9 +61,9 @@
</p>
<h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2>
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051202-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.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-20051202-release/mlton/backend/allocate-registers.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">allocate-registers.fun</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>
</div>
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/AndreiFormiga
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/AndreiFormiga 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/AndreiFormiga 2006-11-07 03:45:26 UTC (rev 4811)
@@ -18,6 +18,12 @@
<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 = "
@@ -25,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
Copied: mlton/branches/on-20050822-x86_64-branch/doc/guide/ArrayLiteral (from rev 4805, mlton/trunk/doc/guide/ArrayLiteral)
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/BasisLibrary
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/BasisLibrary 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/BasisLibrary 2006-11-07 03:45:26 UTC (rev 4811)
@@ -18,6 +18,12 @@
<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 = "
@@ -25,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/Bug
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/Bug 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/Bug 2006-11-07 03:45:26 UTC (rev 4811)
@@ -18,6 +18,12 @@
<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 = "
@@ -25,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -60,6 +66,11 @@
<li>
<p>
+ <a href="Bugs20051202">Bugs20051202</a>
+</p>
+</li>
+ <li>
+<p>
<a href="Bugs20041109">Bugs20041109</a>
</p>
</li>
@@ -71,5 +82,5 @@
<p>
<hr>
-Last edited on 2005-11-30 23:04:27 by <span title="ppp-71-139-183-221.dsl.snfc21.pacbell.net"><a href="StephenWeeks">StephenWeeks</a></span>.
+Last edited on 2006-08-10 12:26:17 by <span title="www-cache2.hel.fi.ssh.com"><a href="VesaKarvonen">VesaKarvonen</a></span>.
</body></html>
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/Bugs20041109
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/Bugs20041109 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/Bugs20041109 2006-11-07 03:45:26 UTC (rev 4811)
@@ -18,6 +18,12 @@
<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 = "
@@ -25,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
Copied: mlton/branches/on-20050822-x86_64-branch/doc/guide/Bugs20051202 (from rev 4805, mlton/trunk/doc/guide/Bugs20051202)
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/CKitLibrary
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/CKitLibrary 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/CKitLibrary 2006-11-07 03:45:26 UTC (rev 4811)
@@ -20,6 +20,12 @@
<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 = "
@@ -27,7 +33,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -63,7 +69,7 @@
You can import the ckit Library into an MLB file with <tt>$(SML_LIB)/ckit-lib/ckit-lib.mlb</tt>
</p>
</li>
- <li class="gap">
+ <li>
<p>
If you are porting a project from SML/NJ's <a href="CompilationManager">CompilationManager</a> to MLton's <a href="MLBasis"> ML Basis system</a> using <tt>cm2mlb</tt>, note that the following map is included by default:
<pre>$ckit-lib.cm/ckit-lib.cm $(SML_LIB)/ckit-lib/ckit-lib.mlb
@@ -147,7 +153,7 @@
<li>
<p>
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051202-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-20061025-release/lib/ckit-lib/ckit.patch?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ckit.patch</a>
</p>
</li>
@@ -159,5 +165,5 @@
<p>
<hr>
-Last edited on 2005-11-30 23:24:50 by <span title="ppp-71-139-183-221.dsl.snfc21.pacbell.net"><a href="StephenWeeks">StephenWeeks</a></span>.
+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>.
</body></html>
Copied: mlton/branches/on-20050822-x86_64-branch/doc/guide/CMinusMinus (from rev 4805, mlton/trunk/doc/guide/CMinusMinus)
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/CallGraph
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/CallGraph 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/CallGraph 2006-11-07 03:45:26 UTC (rev 4811)
@@ -18,6 +18,12 @@
<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 = "
@@ -25,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromCToSML
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromCToSML 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromCToSML 2006-11-07 03:45:26 UTC (rev 4811)
@@ -18,6 +18,12 @@
<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 = "
@@ -25,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -55,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 = _export <FONT COLOR="#BC8F8F"><B>"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)
+<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)
</PRE>
<p>
@@ -77,39 +83,39 @@
Suppose that <tt>export.sml</tt> is
</p>
<p>
-<pre class=code><B><FONT COLOR="#A020F0">val</FONT></B> e = _export <FONT COLOR="#BC8F8F"><B>"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 [<FONT COLOR="#BC8F8F"><B>"i = "</FONT></B>, Int.toString i,
- <FONT COLOR="#BC8F8F"><B>" r = "</FONT></B>, Real.toString r, <FONT COLOR="#BC8F8F"><B>"\n"</FONT></B>])
- ; #<FONT COLOR="#BC8F8F"><B>"g"</FONT></B>))
-<B><FONT COLOR="#A020F0">val</FONT></B> g = _import <FONT COLOR="#BC8F8F"><B>"g"</FONT></B>: unit -> unit;
-<B><FONT COLOR="#A020F0">val</FONT></B> _ = g ()
-<B><FONT COLOR="#A020F0">val</FONT></B> _ = g ()
+<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,
+ <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 = _export <FONT COLOR="#BC8F8F"><B>"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 <FONT COLOR="#BC8F8F"><B>"g2"</FONT></B>: unit -> word array;
-<B><FONT COLOR="#A020F0">val</FONT></B> a = g2 ()
-<B><FONT COLOR="#A020F0">val</FONT></B> _ = print (concat [<FONT COLOR="#BC8F8F"><B>"0wx"</FONT></B>, Word.toString (Array.sub (a, <B><FONT COLOR="#5F9EA0">0</FONT></B>)), <FONT COLOR="#BC8F8F"><B>"\n"</FONT></B>])
+<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> e = _export <FONT COLOR="#BC8F8F"><B>"f3"</FONT></B>: (unit -> unit) -> unit;
-<B><FONT COLOR="#A020F0">val</FONT></B> _ = e (<B><FONT COLOR="#A020F0">fn</FONT></B> () => print <FONT COLOR="#BC8F8F"><B>"hello\n"</FONT></B>);
-<B><FONT COLOR="#A020F0">val</FONT></B> g3 = _import <FONT COLOR="#BC8F8F"><B>"g3"</FONT></B>: unit -> unit;
-<B><FONT COLOR="#A020F0">val</FONT></B> _ = g3 ()
+<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 ()
<I><FONT COLOR="#B22222">(* This example demonstrates mutual recursion between C and SML. *)</FONT></I>
-<B><FONT COLOR="#A020F0">val</FONT></B> e = _export <FONT COLOR="#BC8F8F"><B>"f4"</FONT></B>: (int -> unit) -> unit;
-<B><FONT COLOR="#A020F0">val</FONT></B> g4 = _import <FONT COLOR="#BC8F8F"><B>"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> 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> (_, zzzSet) = _symbol <FONT COLOR="#BC8F8F"><B>"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 <FONT COLOR="#BC8F8F"><B>"g5"</FONT></B>: unit -> unit;
-<B><FONT COLOR="#A020F0">val</FONT></B> _ = g5 ()
+<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> _ = print <FONT COLOR="#BC8F8F"><B>"success\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="#BC8F8F">"success\n"</FONT></B>
</PRE>
@@ -135,40 +141,40 @@
Use <tt>export.h</tt> in a C program, <tt>ffi-export.c</tt>, as follows.
</p>
<p>
-<pre class=code>#<B><FONT COLOR="#5F9EA0">include</FONT></B> <FONT COLOR="#BC8F8F"><B><stdio.h></FONT></B>
-#<B><FONT COLOR="#5F9EA0">include</FONT></B> <FONT COLOR="#BC8F8F"><B>"export.h"</FONT></B>
+<pre class=code>#<B><FONT COLOR="#5F9EA0">include</FONT></B> <B><FONT COLOR="#BC8F8F"><stdio.h></FONT></B>
+#<B><FONT COLOR="#5F9EA0">include</FONT></B> <B><FONT COLOR="#BC8F8F">"export.h"</FONT></B>
-<FONT COLOR="#228B22"><B>void</FONT></B> <B><FONT COLOR="#0000FF">g</FONT></B> () {
+<B><FONT COLOR="#228B22">void</FONT></B> <B><FONT COLOR="#0000FF">g</FONT></B> () {
Char c;
- fprintf (stderr, <FONT COLOR="#BC8F8F"><B>"g starting\n"</FONT></B>);
- c = f (13, 17.15, <FONT COLOR="#BC8F8F"><B>'a'</FONT></B>);
- fprintf (stderr, <FONT COLOR="#BC8F8F"><B>"g done char = %c\n"</FONT></B>, c);
+ fprintf (stderr, <B><FONT COLOR="#BC8F8F">"g starting\n"</FONT></B>);
+ c = f (13, 17.15, <B><FONT COLOR="#BC8F8F">'a'</FONT></B>);
+ fprintf (stderr, <B><FONT COLOR="#BC8F8F">"g done char = %c\n"</FONT></B>, c);
}
Pointer <B><FONT COLOR="#0000FF">g2</FONT></B> () {
Pointer res;
- fprintf (stderr, <FONT COLOR="#BC8F8F"><B>"g2 starting\n"</FONT></B>);
+ fprintf (stderr, <B><FONT COLOR="#BC8F8F">"g2 starting\n"</FONT></B>);
res = f2 (0xFF);
- fprintf (stderr, <FONT COLOR="#BC8F8F"><B>"g2 done\n"</FONT></B>);
+ fprintf (stderr, <B><FONT COLOR="#BC8F8F">"g2 done\n"</FONT></B>);
<B><FONT COLOR="#A020F0">return</FONT></B> res;
}
-<FONT COLOR="#228B22"><B>void</FONT></B> <B><FONT COLOR="#0000FF">g3</FONT></B> () {
- fprintf (stderr, <FONT COLOR="#BC8F8F"><B>"g3 starting\n"</FONT></B>);
+<B><FONT COLOR="#228B22">void</FONT></B> <B><FONT COLOR="#0000FF">g3</FONT></B> () {
+ fprintf (stderr, <B><FONT COLOR="#BC8F8F">"g3 starting\n"</FONT></B>);
f3 ();
- fprintf (stderr, <FONT COLOR="#BC8F8F"><B>"g3 done\n"</FONT></B>);
+ fprintf (stderr, <B><FONT COLOR="#BC8F8F">"g3 done\n"</FONT></B>);
}
-<FONT COLOR="#228B22"><B>void</FONT></B> <B><FONT COLOR="#0000FF">g4</FONT></B> (Int i) {
- fprintf (stderr, <FONT COLOR="#BC8F8F"><B>"g4 (%d)\n"</FONT></B>, i);
+<B><FONT COLOR="#228B22">void</FONT></B> <B><FONT COLOR="#0000FF">g4</FONT></B> (Int i) {
+ fprintf (stderr, <B><FONT COLOR="#BC8F8F">"g4 (%d)\n"</FONT></B>, i);
f4 (i);
}
-<FONT COLOR="#228B22"><B>void</FONT></B> <B><FONT COLOR="#0000FF">g5</FONT></B> () {
- fprintf (stderr, <FONT COLOR="#BC8F8F"><B>"g5 ()\n"</FONT></B>);
- fprintf (stderr, <FONT COLOR="#BC8F8F"><B>"zzz = %i\n"</FONT></B>, zzz);
- fprintf (stderr, <FONT COLOR="#BC8F8F"><B>"g5 done\n"</FONT></B>);
+<B><FONT COLOR="#228B22">void</FONT></B> <B><FONT COLOR="#0000FF">g5</FONT></B> () {
+ fprintf (stderr, <B><FONT COLOR="#BC8F8F">"g5 ()\n"</FONT></B>);
+ fprintf (stderr, <B><FONT COLOR="#BC8F8F">"zzz = %i\n"</FONT></B>, zzz);
+ fprintf (stderr, <B><FONT COLOR="#BC8F8F">"g5 done\n"</FONT></B>);
}
</PRE>
@@ -196,14 +202,14 @@
<li>
<p>
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/tags/on-20051202-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-20061025-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-20051202-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-20061025-release/doc/examples/ffi/ffi-export.c"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ffi-export.c</a>
</p>
</li>
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromSMLToC
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromSMLToC 2006-11-07 01:53:06 UTC (rev 4810)
+++ mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromSMLToC 2006-11-07 03:45:26 UTC (rev 4811)
@@ -18,6 +18,12 @@
<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 = "
@@ -25,7 +31,7 @@
color: darkblue;
font-size: 150%;
text-align: left;">
- <a class = mltona href="Home">MLton 20051202</a>
+ <a class = mltona href="Home">MLton 20061025</a>
<td style = "
border: 0px;
font-size: 150%;
@@ -69,25 +75,25 @@
<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 = _import <FONT COLOR="#BC8F8F"><B>"ffi"</FONT></B>: real array * int ref * int -> char;
-<B><FONT COLOR="#0000FF">open</FONT></B> Array
+<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> 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>
+<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
<I><FONT COLOR="#B22222">(* Call the C function *)</FONT></I>
-<B><FONT COLOR="#A020F0">val</FONT></B> c = ffi (a, r, n)
+<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> (nGet, nSet) = _symbol <FONT COLOR="#BC8F8F"><B>"FFI_INT"</FONT></B>: (unit -> int) * (int -> unit);
+<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> _ = print (concat [Int.toString (nGet ()), <FONT COLOR="#BC8F8F"><B>"\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">concat</FONT></B> [Int.toString (nGet ()), <B><FONT COLOR="#BC8F8F">"\n"</FONT></B>])
-<B><FONT COLOR="#A020F0">val</FONT></B> _ =
- print (<B><FONT COLOR="#A020F0">if</FONT></B> c = #<FONT COLOR="#BC8F8F"><B>"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> <FONT COLOR="#BC8F8F"><B>"success\n"</FONT></B>
- <B><FONT COLOR="#A020F0">else</FONT></B> <FONT COLOR="#BC8F8F"><B>"fail\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">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>
</p>
@@ -95,7 +101,7 @@
<tt>ffi-import.c</tt> is
</p>
<p>
-<pre class=code>#<B><FONT COLOR="#5F9EA0">include</FONT></B> <FONT COLOR="#BC8F8F"><B>"platform.h"</FONT></B>
+<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;
@@ -103,18 +109,18 @@
Real FFI_REAL = 3.14159;
Char <B><FONT COLOR="#0000FF">ffi</FONT></B> (Pointer a1, Pointer a2, Int n) {
- <FONT COLOR="#228B22"><B>double</FONT></B> *ds = (<FONT COLOR="#228B22"><B>double</FONT></B>*)a1;
- <FONT COLOR="#228B22"><B>int</FONT></B> *p = (<FONT COLOR="#228B22"><B>int</FONT></B>*)a2;
- <FONT COLOR="#228B22"><B>int</FONT></B> i;
- <FONT COLOR="#228B22"><B>double</FONT></B> sum;
+ <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) {
sum += ds[i];
ds[i] += n;
}
- *p = (<FONT COLOR="#228B22"><B>int</FONT></B>)sum;
- <B><FONT COLOR="#A020F0">return</FONT></B> <FONT COLOR="#BC8F8F"><B>'c'</FONT></B>;
+ *p = (<B><FONT COLOR="#228B22">int</FONT></B>)sum;
+ <B><FONT COLOR="#A020F0">return</FONT></B> <B><FONT COLOR="#BC8F8F">'c'</FONT></B>;
}
</PRE>
@@ -134,14 +140,14 @@
<li>
<p>
-<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/tags/on-20051202-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-20061025-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-20051202-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-20061025-release/doc/examples/ffi/ffi-import.c"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ffi-import.c</a>
</p>
</li>
Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromSMLToCFunctionPointer
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingF
More information about the MLton-commit
mailing list