You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(56) |
Sep
(40) |
Oct
(30) |
Nov
(144) |
Dec
(23) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(41) |
Feb
(29) |
Mar
(31) |
Apr
(39) |
May
(193) |
Jun
(45) |
Jul
(19) |
Aug
(3) |
Sep
(23) |
Oct
(83) |
Nov
(92) |
Dec
(123) |
2007 |
Jan
(90) |
Feb
(267) |
Mar
(120) |
Apr
(51) |
May
(40) |
Jun
(121) |
Jul
(109) |
Aug
(173) |
Sep
(77) |
Oct
(52) |
Nov
(121) |
Dec
(62) |
2008 |
Jan
(76) |
Feb
(53) |
Mar
(98) |
Apr
(87) |
May
(26) |
Jun
(27) |
Jul
(23) |
Aug
(136) |
Sep
(79) |
Oct
(68) |
Nov
(29) |
Dec
(14) |
2009 |
Jan
(7) |
Feb
(2) |
Mar
(11) |
Apr
(75) |
May
(1) |
Jun
(95) |
Jul
(19) |
Aug
(4) |
Sep
(8) |
Oct
(93) |
Nov
(43) |
Dec
(21) |
2010 |
Jan
(20) |
Feb
(23) |
Mar
(18) |
Apr
(6) |
May
(20) |
Jun
(23) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
(2) |
Feb
(6) |
Mar
(15) |
Apr
(5) |
May
(9) |
Jun
(14) |
Jul
(9) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
(2) |
Jun
(17) |
Jul
(37) |
Aug
|
Sep
(1) |
Oct
(6) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
(5) |
Apr
(2) |
May
(7) |
Jun
(11) |
Jul
(8) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
|
Dec
|
2014 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
|
May
(1) |
Jun
(1) |
Jul
(7) |
Aug
(2) |
Sep
|
Oct
(5) |
Nov
(2) |
Dec
(4) |
2015 |
Jan
|
Feb
(2) |
Mar
(2) |
Apr
|
May
|
Jun
(9) |
Jul
(1) |
Aug
|
Sep
|
Oct
(4) |
Nov
(1) |
Dec
|
2016 |
Jan
(2) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(5) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
(1) |
Feb
(3) |
Mar
(3) |
Apr
(7) |
May
(2) |
Jun
(2) |
Jul
(5) |
Aug
(1) |
Sep
(2) |
Oct
(17) |
Nov
(4) |
Dec
(7) |
2018 |
Jan
(5) |
Feb
(14) |
Mar
(2) |
Apr
(5) |
May
(2) |
Jun
(5) |
Jul
|
Aug
(2) |
Sep
|
Oct
(3) |
Nov
(5) |
Dec
|
2019 |
Jan
(4) |
Feb
(2) |
Mar
(3) |
Apr
(1) |
May
(8) |
Jun
(14) |
Jul
(2) |
Aug
|
Sep
(2) |
Oct
(2) |
Nov
(15) |
Dec
(2) |
2020 |
Jan
(10) |
Feb
(3) |
Mar
(1) |
Apr
|
May
(9) |
Jun
(4) |
Jul
(16) |
Aug
(10) |
Sep
(4) |
Oct
(3) |
Nov
|
Dec
|
2021 |
Jan
(11) |
Feb
(2) |
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(5) |
Sep
|
Oct
(6) |
Nov
(4) |
Dec
(4) |
2022 |
Jan
(4) |
Feb
(2) |
Mar
(2) |
Apr
|
May
(6) |
Jun
(3) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(5) |
Jun
(1) |
Jul
(4) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(13) |
Dec
|
2024 |
Jan
(1) |
Feb
|
Mar
(5) |
Apr
|
May
(10) |
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
(1) |
Dec
(14) |
2025 |
Jan
(3) |
Feb
|
Mar
(1) |
Apr
|
May
(2) |
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Matthew F. <fl...@ml...> - 2005-11-29 10:45:56
|
Install mlnlffigen and mlnlffigen.1 ---------------------------------------------------------------------- U mlton/trunk/package/freebsd/Makefile U mlton/trunk/package/rpm/mlton.spec ---------------------------------------------------------------------- Modified: mlton/trunk/package/freebsd/Makefile =================================================================== --- mlton/trunk/package/freebsd/Makefile 2005-11-29 18:12:05 UTC (rev 4257) +++ mlton/trunk/package/freebsd/Makefile 2005-11-29 18:45:55 UTC (rev 4258) @@ -34,7 +34,7 @@ ONLY_FOR_ARCHS= i386 -MAN1= mllex.1 mlprof.1 mlton.1 mlyacc.1 +MAN1= mllex.1 mlnlffigen.1 mlprof.1 mlton.1 mlyacc.1 MANCOMPRESSED= yes BOOT_WRKSRC= ${WRKDIR}/mlton-bootstrap @@ -74,7 +74,7 @@ ${BOOT_WRKSRC}/bin/mlton post-install: -.for bin in mllex mlprof mlton mlyacc +.for bin in mllex mlnlffigen mlprof mlton mlyacc ${CHOWN} ${SHAREOWN}:${SHAREGRP} ${PREFIX}/bin/${bin} \ ${MAN1PREFIX}/man/man1/${bin}.1.gz ${CHMOD} a+rx ${PREFIX}/bin/${bin} Modified: mlton/trunk/package/rpm/mlton.spec =================================================================== --- mlton/trunk/package/rpm/mlton.spec 2005-11-29 18:12:05 UTC (rev 4257) +++ mlton/trunk/package/rpm/mlton.spec 2005-11-29 18:45:55 UTC (rev 4258) @@ -27,12 +27,13 @@ %files %attr(-, root, root) /usr/share/doc/mlton %attr(-, root, root) /usr/bin/mllex +%attr(-, root, root) /usr/bin/mlnlffigen %attr(-, root, root) /usr/bin/mlprof %attr(-, root, root) /usr/bin/mlton %attr(-, root, root) /usr/bin/mlyacc %attr(-, root, root) /usr/lib/mlton %attr(-, root, root) /usr/man/man1/mllex.1.gz +%attr(-, root, root) /usr/man/man1/mlnlffigen.1.gz %attr(-, root, root) /usr/man/man1/mlprof.1.gz %attr(-, root, root) /usr/man/man1/mlton.1.gz %attr(-, root, root) /usr/man/man1/mlyacc.1.gz - |
From: Stephen W. <sw...@ml...> - 2005-11-29 10:12:24
|
Patch from Geoff Mainland to get packaging on FreeBSD working again. ---------------------------------------------------------------------- U mlton/trunk/Makefile U mlton/trunk/package/freebsd/Makefile ---------------------------------------------------------------------- Modified: mlton/trunk/Makefile =================================================================== --- mlton/trunk/Makefile 2005-11-28 22:27:16 UTC (rev 4256) +++ mlton/trunk/Makefile 2005-11-29 18:12:05 UTC (rev 4257) @@ -36,8 +36,8 @@ GZIP = gzip --force --best RANLIB = ranlib -VERSION = $(shell date +%Y%m%d) -RELEASE = 1 +VERSION ?= $(shell date +%Y%m%d) +RELEASE ?= 1 .PHONY: all all: @@ -163,9 +163,9 @@ mkdir -p $(BSDSRC) ( cd $(SRC) && tar -cpf - . ) | ( cd $(BSDSRC) && tar -xpf - ) cd /tmp && tar -cpf - mlton-$(VERSION) | \ - $(GZIP) >/usr/ports/distfiles/mlton-$(VERSION)-1.freebsd.src.tgz - # vvvv do not change make to $(MAKE) - cd $(BSDSRC)/freebsd && make build-package + $(GZIP) >/usr/ports/distfiles/mlton-$(VERSION)-$(RELEASE).freebsd.src.tgz + # 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 mlyacc-lib smlnj-lib Modified: mlton/trunk/package/freebsd/Makefile =================================================================== --- mlton/trunk/package/freebsd/Makefile 2005-11-28 22:27:16 UTC (rev 4256) +++ mlton/trunk/package/freebsd/Makefile 2005-11-29 18:12:05 UTC (rev 4257) @@ -11,7 +11,7 @@ # alread-built version of MLton, BOOT_DIST, to use for bootstrapping. PORTNAME= mlton -PORTVERSION= 20041109 +PORTVERSION= ${VERSION} CATEGORIES= lang MASTER_SITES= http://mlton.org/pages/Download/attachments/ \ http://mlton.org/pages/Experimental/attachments/ @@ -21,11 +21,13 @@ MAINTAINER= ML...@ml... COMMENT= An optimizing Standard ML compiler -BUILD_DEPENDS= bash:${PORTSDIR}/shells/bash2 \ - hevea:${PORTSDIR}/textproc/hevea \ +BUILD_DEPENDS= bash:${PORTSDIR}/shells/bash +.if !defined(NOPORTDOCS) +BUILD_DEPENDS+= hevea:${PORTSDIR}/textproc/hevea \ latex:${PORTSDIR}/print/teTeX +.endif LIB_DEPENDS= gmp.6:${PORTSDIR}/math/libgmp4 -RUN_DEPENDS= bash:${PORTSDIR}/shells/bash2 +RUN_DEPENDS= bash:${PORTSDIR}/shells/bash SRC_DIST= ${DISTNAME}-1.freebsd.src.tgz BOOT_DIST= ${PORTNAME}-${BOOT_VER}-1.${MACHINE_ARCH}-freebsd.${BOOT_SUF} @@ -45,16 +47,24 @@ PATH=${WRKSRC}/build/bin:${BOOT_WRKSRC}/bin:${PATH} \ PREFIX=${PREFIX} +# XXX Temporary, until docs install is fixed in main Makefile +NOPORTDOCS= yes + +.if defined(NOPORTDOCS) +INSTALL_TARGET= install-no-docs +.endif + PORTDIR= usr/ports/lang/mlton .include <bsd.port.pre.mk> -BOOT_EXTRACT= --bzip +.if ${OSVERSION} >= 600000 +LIB_DEPENDS+= c.5:${PORTSDIR}/misc/compat5x +.endif + +BOOT_EXTRACT= --bzip2 BOOT_SUF= tbz BOOT_VER= 20041109 -.if ${OSVERSION} >= 500000 -LIB_DEPENDS+= c.4:${PORTSDIR}/misc/compat4x -.endif post-extract: @${MKDIR} ${BOOT_WRKSRC} @@ -67,12 +77,24 @@ .for bin in mllex mlprof mlton mlyacc ${CHOWN} ${SHAREOWN}:${SHAREGRP} ${PREFIX}/bin/${bin} \ ${MAN1PREFIX}/man/man1/${bin}.1.gz + ${CHMOD} a+rx ${PREFIX}/bin/${bin} .endfor - ${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/lib/mlton ${DOCSDIR} + ${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/lib/mlton + ${FIND} ${PREFIX}/lib/mlton -type f -exec ${CHMOD} a+r {} \; + ${FIND} ${PREFIX}/lib/mlton -type d -exec ${CHMOD} a+rx {} \; + ${CHMOD} a+x ${PREFIX}/lib/mlton/mlton-compile + ${CHMOD} a+x ${PREFIX}/lib/mlton/platform +.if !defined(NOPORTDOCS) + ${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${DOCSDIR} + ${FIND} ${DOCSDIR} -type f -exec ${CHMOD} a+r {} \; + ${FIND} ${DOCSDIR} -type d -exec ${CHMOD} a+rx {} \; +.endif # Stuff below this line is for maintainer use only. .if defined(MAINTAINER_MODE) +PKGORIGIN=${PKGCATEGORY}/${PORTNAME} + .PHONY: build-package build-package: ${MAKE} makesum build @@ -82,12 +104,12 @@ ${MAKE} install ${MAKE} package ${MAKE} deinstall - pkg_add ${PORTNAME}-${PORTVERSION}.tbz + pkg_add ${PKGREPOSITORY}/${PORTNAME}-${PORTVERSION}.tbz ${MAKE} deinstall ${MAKE} reinstall ${MAKE} package - ${CP} ${PORTNAME}-${PORTVERSION}.tbz \ - ${DISTDIR}/${PORTNAME}-${PORTVERSION}-1.i386-freebsd.tbz + ${CP} ${PKGREPOSITORY}/${PORTNAME}-${PORTVERSION}.tbz \ + ${DISTDIR}/${PORTNAME}-${PORTVERSION}-${RELEASE}.i386-freebsd.tbz ${TAR} -cpf - Makefile distinfo pkg-descr pkg-plist | \ ( ${MKDIR} ${PORTDIR} && cd ${PORTDIR} && ${TAR} -xpf - ) shar `find ${PORTDIR}` >/tmp/mlton-${PORTVERSION}-portdir.shar @@ -96,7 +118,8 @@ PLIST= ${.CURDIR}/pkg-plist pkg-plist: - cd ${WRKSRC} && ${GMAKE} install +# XXX Temporary, until docs install is fixed in main Makefile + cd ${WRKSRC} && ${GMAKE} install-no-docs cd ${WRKSRC}/install/usr && \ ${FIND} -d * \! -type d | ${GREP} -v man/man | \ ${SORT} >${PLIST} |
From: Stephen W. <sw...@ml...> - 2005-11-28 14:27:21
|
Removed unused tags and tags not corresponding to public releases. ---------------------------------------------------------------------- D mlton/tags/basis-1997/ D mlton/tags/cvs2svn/ D mlton/tags/explicit-arrays-and-limit-checks-root/ D mlton/tags/on-20010814-old-codegen/ D mlton/tags/on-20020205-release/ D mlton/tags/on-20020825-release/ D mlton/tags/on-20020919-release/ D mlton/tags/on-20020927-release/ D mlton/tags/on-20020929-release/ D mlton/tags/on-20020930-release/ D mlton/tags/on-20021001-release/ D mlton/tags/on-20021018-prof-root/ D mlton/tags/on-20021018-release/ D mlton/tags/on-20021112-release/ D mlton/tags/on-20021122-release/ D mlton/tags/on-20021123-pre-basis-2002/ D mlton/tags/on-20030116-release/ D mlton/tags/on-20030130-release/ D mlton/tags/on-20030209-release/ D mlton/tags/on-20030225-release/ D mlton/tags/on-20030419-release/ D mlton/tags/on-20030501-release/ D mlton/tags/on-20030502-release/ D mlton/tags/on-20030512-release/ D mlton/tags/on-20030513-release/ D mlton/tags/on-20030625-release/ D mlton/tags/on-20030707-release/ D mlton/tags/on-20030708-release/ D mlton/tags/on-20030720-release/ D mlton/tags/on-20031118-release/ D mlton/tags/on-20031202-release/ D mlton/tags/on-20040106-release/ D mlton/tags/on-20040221-release/ D mlton/tags/on-20040427-release/ D mlton/tags/on-20040516-release/ D mlton/tags/on-20040610-release/ D mlton/tags/on-20040614-release/ D mlton/tags/on-20040819-release/ D mlton/tags/pre-rssa-merge/ D mlton/tags/ssa-root/ D mlton/tags/start/ ---------------------------------------------------------------------- |
From: Stephen W. <sw...@ml...> - 2005-11-28 14:11:29
|
Removed unused branches. ---------------------------------------------------------------------- D mlton/branches/basis-2002/ D mlton/branches/explicit-arrays-and-limit-checks-branch/ D mlton/branches/live-stack-slots/ D mlton/branches/on-20021018-prof-branch/ D mlton/branches/rcps/ D mlton/branches/release-20011006-bugfixes-branch/ D mlton/branches/rssa/ D mlton/branches/ssa-branch/ D mlton/branches/sweeks/ D mlton/branches/unlabeled-1.1.1.1.10/ D mlton/branches/unlabeled-1.1.1.1.4/ D mlton/branches/unlabeled-1.1.1.1.6/ D mlton/branches/unlabeled-1.1.1.1.8/ D mlton/branches/unlabeled-1.1.2/ D mlton/branches/unlabeled-1.1.4/ D mlton/branches/unlabeled-1.1.8/ D mlton/branches/unlabeled-1.10.2/ D mlton/branches/unlabeled-1.11.2/ D mlton/branches/unlabeled-1.11.4/ D mlton/branches/unlabeled-1.12.2/ D mlton/branches/unlabeled-1.12.2.1.4/ D mlton/branches/unlabeled-1.12.4/ D mlton/branches/unlabeled-1.13.2/ D mlton/branches/unlabeled-1.13.2.1.4/ D mlton/branches/unlabeled-1.14.2/ D mlton/branches/unlabeled-1.15.2/ D mlton/branches/unlabeled-1.16.2/ D mlton/branches/unlabeled-1.16.4/ D mlton/branches/unlabeled-1.17.2/ D mlton/branches/unlabeled-1.17.4/ D mlton/branches/unlabeled-1.18.2/ D mlton/branches/unlabeled-1.19.2/ D mlton/branches/unlabeled-1.2.2/ D mlton/branches/unlabeled-1.2.4/ D mlton/branches/unlabeled-1.2.6/ D mlton/branches/unlabeled-1.2.8/ D mlton/branches/unlabeled-1.20.2/ D mlton/branches/unlabeled-1.21.2/ D mlton/branches/unlabeled-1.21.2.1.4/ D mlton/branches/unlabeled-1.22.2/ D mlton/branches/unlabeled-1.23.2/ D mlton/branches/unlabeled-1.25.2/ D mlton/branches/unlabeled-1.25.2.1.4/ D mlton/branches/unlabeled-1.26.2/ D mlton/branches/unlabeled-1.26.2.1.4/ D mlton/branches/unlabeled-1.27.2/ D mlton/branches/unlabeled-1.28.2/ D mlton/branches/unlabeled-1.3.2/ D mlton/branches/unlabeled-1.3.2.1.4/ D mlton/branches/unlabeled-1.3.6/ D mlton/branches/unlabeled-1.30.2/ D mlton/branches/unlabeled-1.33.2/ D mlton/branches/unlabeled-1.36.2/ D mlton/branches/unlabeled-1.38.2/ D mlton/branches/unlabeled-1.4.2/ D mlton/branches/unlabeled-1.4.2.1.4/ D mlton/branches/unlabeled-1.4.4/ D mlton/branches/unlabeled-1.44.2/ D mlton/branches/unlabeled-1.49.2/ D mlton/branches/unlabeled-1.5.2/ D mlton/branches/unlabeled-1.5.2.1.4/ D mlton/branches/unlabeled-1.5.4/ D mlton/branches/unlabeled-1.6.2/ D mlton/branches/unlabeled-1.6.2.1.4/ D mlton/branches/unlabeled-1.7.2/ D mlton/branches/unlabeled-1.7.2.1.4/ D mlton/branches/unlabeled-1.7.4/ D mlton/branches/unlabeled-1.8.2/ D mlton/branches/unlabeled-1.8.2.1.4/ D mlton/branches/unlabeled-1.8.4/ D mlton/branches/unlabeled-1.9.2/ D mlton/branches/unlabeled-1.9.2.1.4/ ---------------------------------------------------------------------- |
From: Stephen W. <sw...@ml...> - 2005-11-25 18:26:07
|
The recent upgrade of ckit.tgz and smlnj-lib.tgz had different file permissions than the previous versions, and particular was missing read permission for group and other. So, I added a chmod to the Makefile to fix this. ---------------------------------------------------------------------- U mlton/trunk/lib/ckit-lib/Makefile U mlton/trunk/lib/smlnj-lib/Makefile ---------------------------------------------------------------------- Modified: mlton/trunk/lib/ckit-lib/Makefile =================================================================== --- mlton/trunk/lib/ckit-lib/Makefile 2005-11-24 15:45:21 UTC (rev 4253) +++ mlton/trunk/lib/ckit-lib/Makefile 2005-11-26 02:26:05 UTC (rev 4254) @@ -10,6 +10,7 @@ ckit/README.mlton: ckit.tgz ckit.patch gzip -dc ckit.tgz | tar xf - + chmod -R a+r ckit patch -p0 < ckit.patch .PHONY: clean Modified: mlton/trunk/lib/smlnj-lib/Makefile =================================================================== --- mlton/trunk/lib/smlnj-lib/Makefile 2005-11-24 15:45:21 UTC (rev 4253) +++ mlton/trunk/lib/smlnj-lib/Makefile 2005-11-26 02:26:05 UTC (rev 4254) @@ -10,6 +10,7 @@ smlnj-lib/README.mlton: smlnj-lib.tgz smlnj-lib.patch gzip -dc smlnj-lib.tgz | tar xf - + chmod -R a+r smlnj-lib patch -p0 < smlnj-lib.patch mv smlnj-lib/LICENSE ../../doc/license/SMLNJ-LIB-LICENSE |
From: Wesley T. <we...@ml...> - 2005-11-24 07:45:22
|
The converter signature and beginnings of converter implementation. ---------------------------------------------------------------------- A mlton/branches/unicode/basis-library/i18n/ A mlton/branches/unicode/basis-library/i18n/converter.sig A mlton/branches/unicode/basis-library/i18n/converter.sml A mlton/branches/unicode/basis-library/i18n.mlb ---------------------------------------------------------------------- Added: mlton/branches/unicode/basis-library/i18n/converter.sig =================================================================== --- mlton/branches/unicode/basis-library/i18n/converter.sig 2005-11-24 01:08:59 UTC (rev 4252) +++ mlton/branches/unicode/basis-library/i18n/converter.sig 2005-11-24 15:45:21 UTC (rev 4253) @@ -0,0 +1,70 @@ +signature CHARSET_CONVERTER = + sig + structure Encoding: + sig + type t + + val equals: t * t -> bool + + val fromName: string -> t option + val toName: t -> string + + (* also needed for bare minimum support (in order of usefulness): + val punycode: t + val utf7: t + val gb18030: t + val cesu8: t + val scsu: t + *) + val utf8: t + (* the "be" and "le" control endian in the absense of FFFE *) + val utf16be: t + val utf16le: t + val utf32be: t + val utf32le: t + end + + (* Unfortunately, unlike all of the StringCvt methods provided in the + * basis, charset encodings can be stateful. For example, consider a + * fictituous charset consisting of letters A-Z and a 'uppercase' + * and 'lowercase' char (u & l respectively). Then "BlBBuCB" = "BbbCB". + * For this reason, decoders need to keep a state in addition to the + * stream position. Encoders also need to be 'flush'ed at the end of + * encoding to restore a stateful output stream to the initial state. + *) + type state + val embed: unit -> ('a -> state) * (state -> 'a option) + + type 'a decoder = { + initial: state, + decoder: (Word8.word, 'a) reader -> (WideChar.char, 'a * state) reader + } + val decoder: Encoding.t -> 'a decoder + + (* The encoder will only write up to the first unicode character which + * cannot be represented in the output charset. + *) + type encoder = { + initial: state * Word8Vector.vector, + encoder: state * WideSubtring.substring -> + state * WideSubstring.substring * Word8Vector.vector, + flush: state -> Word8Vector.vector + } + val encoder: Encoding.t -> encoder + + (* Convenience functions *) + val decode: Encoding.t * Word8VectorSlice.vector_slice -> WideString.string option + val encode: Encoding.t * WideSubstring.substring -> Word8Vector.vector option + + (* The register method allows you to add support for new encodings. + * The name is used case insensitively. + * The decoder has concrete type "state decoder" to work around SML's + * lack of higher order types. However, you must not peek inside it. + *) + type user_coder = { + name: string, + decoder: state decoder, + encoder: encoder + } + val register: user_coder -> unit + end Added: mlton/branches/unicode/basis-library/i18n/converter.sml =================================================================== --- mlton/branches/unicode/basis-library/i18n/converter.sml 2005-11-24 01:08:59 UTC (rev 4252) +++ mlton/branches/unicode/basis-library/i18n/converter.sml 2005-11-24 15:45:21 UTC (rev 4253) @@ -0,0 +1,94 @@ +structure CharsetConverter :> CHARSET_CONVERTER = + struct + (* http://mlton.org/UniversalType *) + type state = exn + fun 'a embed () = + let + exception E of 'a + fun project (e: t): 'a option = + case e of + E a => SOME a + | _ => NONE + in + (E, project) + end + + type 'a decoder = { + initial: state, + decoder: (Word8.word, 'a) reader -> (WideChar.char, 'a * state) reader + } + + type encoder = { + initial: state * Word8Vector.vector, + encoder: state * WideSubtring.substring -> + state * WideSubstring.substring * Word8Vector.vector, + flush: state -> Word8Vector.vector + } + + type user_coder = { + name: string, + decoder: state decoder, + encoder: encoder + } + + val coders : user_coder list ref = ref [] + fun register x = coders := x :: (!coders) + + structure Encoding = + struct + datatype t = + UTF8 | UTF16BE | UTF16LE | UTF32BE | UTF32LE | + USER of user_coder + + val equals = op = + + fun canonName s = + String.translate + (fn #"_" => "" + | #"-" => "" + | x => String.str (Char.toUpper x)) s + + fun fromName s = case canonName s of + "UTF8" => SOME UTF8 + | "UCS2" => SOME UTF16LE + | "UCS2LE" => SOME UTF16LE + | "UCS2BE" => SOME UTF16BE + | "UTF16" => SOME UTF16LE (* guess little-endian for now *) + | "UTF16LE" => SOME UTF16LE + | "UTF16BE" => SOME UTF16BE + | "UCS4" => SOME UTF32LE + | "UCS4LE" => SOME UTF32LE + | "UCS4BE" => SOME UTF32BE + | "UTF32" => SOME UTF32LE (* guess little-endian for now *) + | "UTF32LE" => SOME UTF32LE + | "UTF32BE" => SOME UTF32BE + | s => + case List.find (fn {name, ...} => name = s) (!coders) of + NONE => NONE + | SOME x => SOME (USER x) + + fun toName UTF8 = "UTF-8" + | toName UTF16BE = "UTF-16BE" + | toName UTF16LE = "UTF-16LE" + | toName UTF32BE = "UTF-32BE" + | toName UTF32LE = "UTF-32LE" + | toName (User {name, ...}) => name + + val utf8 = UTF8 + val utf16be = UTF16BE + val utf16le = UTF16LE + val utf32be = UTF32BE + val utf32le = UTF32LE + end + + fun decode (e, vs) = + let + val { initial, decoder } = decoder e + fun get vs = + if Word8VectorSlice.length vs = 0 then NONE else + SOME (Word8VectorSlice.sub (vs, 0), + Word8VectorSlice.subslice (vs, 1, NONE)) + in + () + end + end Added: mlton/branches/unicode/basis-library/i18n.mlb =================================================================== --- mlton/branches/unicode/basis-library/i18n.mlb 2005-11-24 01:08:59 UTC (rev 4252) +++ mlton/branches/unicode/basis-library/i18n.mlb 2005-11-24 15:45:21 UTC (rev 4253) @@ -0,0 +1,50 @@ +(* Copyright (C) 2004-2005 Henry Cejtin, Matthew Fluet, Suresh + * Jagannathan, and Stephen Weeks. + * + * MLton is released under a BSD-style license. + * See the file MLton-LICENSE for details. + *) + +ann + "deadCode true" + "sequenceNonUnit warn" + "nonexhaustiveMatch warn" "redundantMatch warn" + "warnUnused true" "forceUsed" +in + local + libs/basis-extra/basis-extra.mlb + in + structure Char4 : CHAR + structure Char4Array : MONO_ARRAY + structure Char4Array2 : MONO_ARRAY2 + structure Char4ArraySlice : MONO_ARRAY_SLICE + structure Char4Vector : MONO_VECTOR + structure Char4VectorSlice : MONO_VECTOR_SLICE + structure String4 : STRING + structure Substring4 : SUBSTRING + structure Text4 : TEXT + + structure Char2 : CHAR + structure Char2Array : MONO_ARRAY + structure Char2Array2 : MONO_ARRAY2 + structure Char2ArraySlice : MONO_ARRAY_SLICE + structure Char2Vector : MONO_VECTOR + structure Char2VectorSlice : MONO_VECTOR_SLICE + structure String2 : STRING + structure Substring2 : SUBSTRING + structure Text2 : TEXT + + structure Char1 : CHAR + structure Char1Array : MONO_ARRAY + structure Char1Array2 : MONO_ARRAY2 + structure Char1ArraySlice : MONO_ARRAY_SLICE + structure Char1Vector : MONO_VECTOR + structure Char1VectorSlice : MONO_VECTOR_SLICE + structure String1 : STRING + structure Substring1 : SUBSTRING + structure Text1 : TEXT + + signature CHARSET_CONVERTER + structure CharsetConverter : CHARSET_CONVERTER + end +end |
From: Wesley T. <we...@ml...> - 2005-11-23 21:49:51
|
pieces of the charset generator ---------------------------------------------------------------------- A mlton/branches/unicode/basis-library/text/gen-hash.sml A mlton/branches/unicode/basis-library/text/gen-lists.sml ---------------------------------------------------------------------- Added: mlton/branches/unicode/basis-library/text/gen-hash.sml =================================================================== --- mlton/branches/unicode/basis-library/text/gen-hash.sml 2005-11-24 00:59:21 UTC (rev 4251) +++ mlton/branches/unicode/basis-library/text/gen-hash.sml 2005-11-24 01:08:59 UTC (rev 4252) @@ -0,0 +1,70 @@ +(* parse the entire standard input *) +fun parse s = Vector.fromList (String.fields (fn c => c = #";") s) +fun scanin h = + case TextIO.inputLine h of + NONE => [] + | SOME s => s :: scanin h + +fun hex2int s = valOf (StringCvt.scanString (Int.scan StringCvt.HEX) s) +val UnicodeData = List.map parse (scanin (TextIO.openIn "UnicodeData.txt")) +val CodePoints = Vector.fromList (List.map (fn v => hex2int (Vector.sub (v, 0))) UnicodeData) + +fun hash (s, f, n) = + let + val a = Array.tabulate (n, fn _ => 0) + val clashes = ref 0 + + val sw = Word32.fromInt s + val fw = Word32.fromInt f + val nw = Word32.fromInt n + + fun inject x = + let + val xw = Word32.fromInt x + val k = (Word32.>> (xw, sw) * fw) + xw (* 6..15 *) + val k = Word32.toInt (Word32.mod (k, nw)) + val v = Unsafe.Array.sub (a, k) + 1 + in + if v > 1 then clashes := !clashes + 1 else (); + Unsafe.Array.update (a, k, v) + end + in + Vector.app inject CodePoints; + !clashes + end + +(* 21 bits of data, 14 bits used, 15+5 used *) + +(* 10, 5919, 32768 -> 52, 2 *) +(* 12, 5537, 32768 -> 51, 2 *) +(* 14, 16837, 32768 -> 8, 2 *) +(* 14, 6162, 33739 -> 5, 2 *) +(* 13, 10941, 52007 -> 0 *) + +fun better (best, clashes) = best < clashes + +fun loopshift (n, f) (s, best) = + if s = 17 then best else + let val trial = hash (s, f, n) in + if trial > best then loopshift (n, f) (s + 1, best) else + (print (Int.toString s ^ ", " ^ Int.toString f ^ ", " ^ Int.toString n ^ " -> " ^ Int.toString best ^ "\n"); + loopshift (n, f) (s + 1, trial)) end + +fun loopfact n (f, best) = + let val best = loopshift (n, f) (10, best) in + if f = n then best else loopfact n (f + 1, best) end + +fun loopmod best = + let + val n = Word.toInt (MLton.Random.rand () mod 0w31500) + 10000 + val best = loopfact n (1, best) + in + loopmod best + end + +val () = MLton.Random.srand (valOf (MLton.Random.useed ())) +(* +val best = loopfact 32768 (1, 5000) (* a useful size due to bit arith *) +val best = loopfact 65536 (1, best) (* a useful size due to bit arith *) +*) +val () = loopmod 0 Added: mlton/branches/unicode/basis-library/text/gen-lists.sml =================================================================== --- mlton/branches/unicode/basis-library/text/gen-lists.sml 2005-11-24 00:59:21 UTC (rev 4251) +++ mlton/branches/unicode/basis-library/text/gen-lists.sml 2005-11-24 01:08:59 UTC (rev 4252) @@ -0,0 +1,45 @@ +(* parse the entire standard input *) +fun parse s = Vector.fromList (String.fields (fn c => c = #";") s) +fun scanin h = + case TextIO.inputLine h of + NONE => [] + | SOME s => s :: scanin h + +val UnicodeData = List.map parse (scanin (TextIO.openIn "UnicodeData.txt")) +val PropList = List.map parse (scanin (TextIO.openIn "PropList.txt")) +fun hex2int s = valOf (StringCvt.scanString (Int.scan StringCvt.HEX) s) + +(* There are four tables of data we must provide for the basis: + * category: c => letter | numeral | control | punct + * case: c => lower | upper | space | other + * Because Unicode stores clumps characters of similar type together, + * we record the data as [ <val0>, <count0>, <val1>, <count1>, ... <valN> ] + * val0 is the value of the field, count is the repitition of that value + * toupper: c => c + * tolower: c => c + *) + + +(* select characters by their category *) +fun category select = + List.mapPartial (fn v => if select (Vector.sub (v, 2)) + then hex2int (Vector.sub (v, 0)) + else NONE) + records + +(* convert a alist of integers into closed integer ranges *) +fun compress [] = [] + | compress (x :: r) = + let + fun helper ((l, u), []) = [(l, u)] + | helper ((l, u), n :: r) = + if u+1 = n then helper ((l, n), r) else + (l, u) :: helper ((n, n), r) + in + helper ((x, x), r) + end + +fun dump [] = () + | dump ((l, u) :: r) = ( + print (Int.fmt StringCvt.HEX l ^ "..." ^ Int.fmt StringCvt.HEX u ^ " = " ^ Int.toString (u - l) ^ "\n"); + dump r) |
From: Wesley T. <we...@ml...> - 2005-11-23 21:49:47
|
Mark the version from which the unicode branch is being developed ---------------------------------------------------------------------- A mlton/tags/unicode-lastmerge/ ---------------------------------------------------------------------- Copied: mlton/tags/unicode-lastmerge (from rev 4246, mlton/trunk) |
From: Wesley T. <we...@ml...> - 2005-11-23 21:47:49
|
Import unicode working copy from carrot ---------------------------------------------------------------------- A mlton/branches/unicode/ U mlton/branches/unicode/basis-library/arrays-and-vectors/mono.sml U mlton/branches/unicode/basis-library/integer/word.sml U mlton/branches/unicode/basis-library/libs/basis-2002/top-level/Makefile U mlton/branches/unicode/basis-library/libs/basis-2002/top-level/basis.sig U mlton/branches/unicode/basis-library/libs/basis-2002/top-level/generate-overloads.sml U mlton/branches/unicode/basis-library/libs/basis-2002/top-level/overloads.sml U mlton/branches/unicode/basis-library/libs/basis-2002/top-level/top-level.sml U mlton/branches/unicode/basis-library/libs/basis-extra/basis-extra.mlb U mlton/branches/unicode/basis-library/libs/basis-extra/top-level/basis.sig U mlton/branches/unicode/basis-library/libs/basis-extra/top-level/basis.sml U mlton/branches/unicode/basis-library/misc/primitive.sml A mlton/branches/unicode/basis-library/text/char.fun U mlton/branches/unicode/basis-library/text/char.sig U mlton/branches/unicode/basis-library/text/char.sml D mlton/branches/unicode/basis-library/text/char0.sml A mlton/branches/unicode/basis-library/text/charset.sml U mlton/branches/unicode/basis-library/text/string-cvt.sml A mlton/branches/unicode/basis-library/text/string.fun U mlton/branches/unicode/basis-library/text/string.sml D mlton/branches/unicode/basis-library/text/string0.sml A mlton/branches/unicode/basis-library/text/substring.fun U mlton/branches/unicode/basis-library/text/substring.sml U mlton/branches/unicode/basis-library/text/text.sml A mlton/branches/unicode/basis-library/text/unicode-4.1.0/ A mlton/branches/unicode/basis-library/text/unicode-4.1.0/PropList.txt.gz A mlton/branches/unicode/basis-library/text/unicode-4.1.0/UnicodeData.txt.gz ---------------------------------------------------------------------- Copied: mlton/branches/unicode (from rev 4246, mlton/trunk) Modified: mlton/branches/unicode/basis-library/arrays-and-vectors/mono.sml =================================================================== --- mlton/trunk/basis-library/arrays-and-vectors/mono.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/arrays-and-vectors/mono.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -61,14 +61,44 @@ = EqMono (type elem = char) open S in - structure CharArray = Array - structure CharArray2 = Array2 - structure CharArraySlice = ArraySlice - structure CharVector = Vector - structure CharVectorSlice = VectorSlice - val _ = CharVector.fromArray: CharArray.array -> CharVector.vector + structure Char1Array = Array + structure Char1Array2 = Array2 + structure Char1ArraySlice = ArraySlice + structure Char1Vector = Vector + structure Char1VectorSlice = VectorSlice + val _ = Char1Vector.fromArray: Char1Array.array -> Char1Vector.vector end local + structure S:> + EQ_MONO + where type Array.elem = Char2.char + where type Vector.vector = String2.string + = EqMono (type elem = Char2.char) + open S +in + structure Char2Array = Array + structure Char2Array2 = Array2 + structure Char2ArraySlice = ArraySlice + structure Char2Vector = Vector + structure Char2VectorSlice = VectorSlice + val _ = Char2Vector.fromArray: Char2Array.array -> Char2Vector.vector +end +local + structure S:> + EQ_MONO + where type Array.elem = Char4.char + where type Vector.vector = String4.string + = EqMono (type elem = Char4.char) + open S +in + structure Char4Array = Array + structure Char4Array2 = Array2 + structure Char4ArraySlice = ArraySlice + structure Char4Vector = Vector + structure Char4VectorSlice = VectorSlice + val _ = Char4Vector.fromArray: Char4Array.array -> Char4Vector.vector +end +local structure S = EqMono (type elem = Int8.int) open S in @@ -182,6 +212,18 @@ structure Word64Array2 = Array2 end +structure CharVector = Char1Vector +structure CharVectorSlice = Char1VectorSlice +structure CharArray = Char1Array +structure CharArraySlice = Char1ArraySlice +structure CharArray2 = Char1Array2 + +structure WideCharVector = Char4Vector +structure WideCharVectorSlice = Char4VectorSlice +structure WideCharArray = Char4Array +structure WideCharArraySlice = Char4ArraySlice +structure WideCharArray2 = Char4Array2 + structure IntVector = Int32Vector structure IntVectorSlice = Int32VectorSlice structure IntArray = Int32Array Modified: mlton/branches/unicode/basis-library/integer/word.sml =================================================================== --- mlton/trunk/basis-library/integer/word.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/integer/word.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -75,7 +75,7 @@ let val chars = StringCvt.digitToChar (toInt (q mod radix)) :: chars val q = q div radix in if q = zero - then String0.implode chars + then CharVector.fromList chars else loop (q, chars) end in loop (w, []) Modified: mlton/branches/unicode/basis-library/libs/basis-2002/top-level/Makefile =================================================================== --- mlton/trunk/basis-library/libs/basis-2002/top-level/Makefile 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-2002/top-level/Makefile 2005-11-24 00:51:12 UTC (rev 4250) @@ -9,7 +9,7 @@ overloads.sml: $(GEN).sml mlton $(GEN).sml - $(GEN) >overloads.sml + ./$(GEN) >overloads.sml .PHONY: clean clean: Modified: mlton/branches/unicode/basis-library/libs/basis-2002/top-level/basis.sig =================================================================== --- mlton/trunk/basis-library/libs/basis-2002/top-level/basis.sig 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-2002/top-level/basis.sig 2005-11-24 00:51:12 UTC (rev 4250) @@ -242,7 +242,6 @@ structure SysWord : WORD structure Unix : UNIX structure UnixSock : UNIX_SOCK -(* structure WideChar : CHAR structure WideCharArray : MONO_ARRAY structure WideCharArray2 : MONO_ARRAY2 @@ -252,9 +251,8 @@ structure WideString : STRING structure WideSubstring : SUBSTRING structure WideText : TEXT +(* structure WideTextPrimIO : PRIM_IO -*) -(* structure Windows : WINDOWS *) structure Word1: WORD @@ -552,6 +550,38 @@ sharing type Real64Array2.elem = Real64.real sharing type Real64Array2.vector = Real64Vector.vector sharing type Unix.exit_status = Posix.Process.exit_status + sharing type WideChar.string = WideString.string + sharing type WideCharArray.elem = WideChar.char + sharing type WideCharArray.vector = WideCharVector.vector + sharing type WideCharArraySlice.elem = WideChar.char + sharing type WideCharArraySlice.array = WideCharArray.array + sharing type WideCharArraySlice.vector = WideCharVector.vector + sharing type WideCharArraySlice.vector_slice = WideCharVectorSlice.slice + sharing type WideCharVector.elem = WideChar.char + sharing type WideCharVector.vector = WideString.string + sharing type WideCharVectorSlice.elem = WideChar.char + sharing type WideCharVectorSlice.vector = WideString.string + sharing type WideCharVectorSlice.slice = WideSubstring.substring + sharing type WideString.string = WideCharVector.vector + sharing type WideString.char = WideChar.char + sharing type WideSubstring.substring = WideCharVectorSlice.slice + sharing type WideSubstring.string = WideString.string + sharing type WideSubstring.char = WideChar.char + sharing type WideText.Char.char = WideChar.char + sharing type WideText.String.string = WideString.string + sharing type WideText.Substring.substring = WideSubstring.substring + sharing type WideText.CharVector.vector = WideCharVector.vector + sharing type WideText.CharArray.array = WideCharArray.array + sharing type WideText.CharArraySlice.slice = WideCharArraySlice.slice + sharing type WideText.CharVectorSlice.slice = WideCharVectorSlice.slice +(* + sharing type WideTextPrimIO.array = WideCharArray.array + sharing type WideTextPrimIO.array_slice = WideCharArraySlice.slice + sharing type WideTextPrimIO.elem = WideChar.char + sharing type WideTextPrimIO.pos = Position.int + sharing type WideTextPrimIO.vector = WideCharVector.vector + sharing type WideTextPrimIO.vector_slice = WideCharVectorSlice.slice +*) sharing type WordArray.elem = word sharing type WordArray.vector = WordVector.vector sharing type WordArraySlice.elem = word Modified: mlton/branches/unicode/basis-library/libs/basis-2002/top-level/generate-overloads.sml =================================================================== --- mlton/trunk/basis-library/libs/basis-2002/top-level/generate-overloads.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-2002/top-level/generate-overloads.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -24,7 +24,7 @@ @ List.map (List.tabulate (32, fn i => i + 1) @ [64], fn i => concat ["Word", Int.toString i]) -val text = ["Char", "String"] +val text = ["Char", "String", "WideChar", "WideString", "Char2", "String2"] (* Order matters here in the appends, since the first element will be the * default. Modified: mlton/branches/unicode/basis-library/libs/basis-2002/top-level/overloads.sml =================================================================== --- mlton/trunk/basis-library/libs/basis-2002/top-level/overloads.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-2002/top-level/overloads.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -1,10 +1,3 @@ -(* Copyright (C) 2002-2005 Henry Cejtin, Matthew Fluet, Suresh - * Jagannathan, and Stephen Weeks. - * - * MLton is released under a BSD-style license. - * See the file MLton-LICENSE for details. - *) - (* This file is automatically generated. Do not edit. *) _overload 2 ~ : 'a -> 'a @@ -602,6 +595,10 @@ and LargeReal.< and Char.< and String.< +and WideChar.< +and WideString.< +and Char2.< +and String2.< _overload 1 <= : 'a * 'a -> bool as Int.<= @@ -683,6 +680,10 @@ and LargeReal.<= and Char.<= and String.<= +and WideChar.<= +and WideString.<= +and Char2.<= +and String2.<= _overload 1 > : 'a * 'a -> bool as Int.> @@ -764,6 +765,10 @@ and LargeReal.> and Char.> and String.> +and WideChar.> +and WideString.> +and Char2.> +and String2.> _overload 1 >= : 'a * 'a -> bool as Int.>= @@ -845,3 +850,7 @@ and LargeReal.>= and Char.>= and String.>= +and WideChar.>= +and WideString.>= +and Char2.>= +and String2.>= Modified: mlton/branches/unicode/basis-library/libs/basis-2002/top-level/top-level.sml =================================================================== --- mlton/trunk/basis-library/libs/basis-2002/top-level/top-level.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-2002/top-level/top-level.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -40,6 +40,8 @@ structure Real64Vector = Real64Vector structure RealArray = RealArray structure RealVector = RealVector +structure WideCharArraySlice = WideCharArraySlice +structure WideCharArray = WideCharArray structure Word8Array = Word8Array structure Word8Vector = Word8Vector structure Word16Array = Word16Array Modified: mlton/branches/unicode/basis-library/libs/basis-extra/basis-extra.mlb =================================================================== --- mlton/trunk/basis-library/libs/basis-extra/basis-extra.mlb 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-extra/basis-extra.mlb 2005-11-24 00:51:12 UTC (rev 4250) @@ -47,10 +47,9 @@ ../../arrays-and-vectors/mono-array2.sig ../../arrays-and-vectors/mono-array2.fun ../../arrays-and-vectors/mono.sml - ../../text/string0.sml - ../../text/char0.sml ../../misc/reader.sig ../../misc/reader.sml + ../../text/charset.sml ../../text/string-cvt.sig ../../text/string-cvt.sml ../../general/bool.sig @@ -58,11 +57,14 @@ ../../integer/integer.sig ../../integer/int.sml ../../text/char.sig + ../../text/char.fun ../../text/char.sml + ../../text/string.sig + ../../text/string.fun + ../../text/string.sml ../../text/substring.sig + ../../text/substring.fun ../../text/substring.sml - ../../text/string.sig - ../../text/string.sml ../../misc/C.sig ../../misc/C.sml ../../integer/word.sig Modified: mlton/branches/unicode/basis-library/libs/basis-extra/top-level/basis.sig =================================================================== --- mlton/trunk/basis-library/libs/basis-extra/top-level/basis.sig 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-extra/top-level/basis.sig 2005-11-24 00:51:12 UTC (rev 4250) @@ -242,7 +242,6 @@ structure SysWord : WORD structure Unix : UNIX structure UnixSock : UNIX_SOCK -(* structure WideChar : CHAR structure WideCharArray : MONO_ARRAY structure WideCharArray2 : MONO_ARRAY2 @@ -252,9 +251,8 @@ structure WideString : STRING structure WideSubstring : SUBSTRING structure WideText : TEXT +(* structure WideTextPrimIO : PRIM_IO -*) -(* structure Windows : WINDOWS *) structure Word1: WORD @@ -316,7 +314,37 @@ structure MLton: MLTON structure SMLofNJ: SML_OF_NJ structure Unsafe: UNSAFE + + structure Char4 : CHAR + structure Char4Array : MONO_ARRAY + structure Char4Array2 : MONO_ARRAY2 + structure Char4ArraySlice : MONO_ARRAY_SLICE + structure Char4Vector : MONO_VECTOR + structure Char4VectorSlice : MONO_VECTOR_SLICE + structure String4 : STRING + structure Substring4 : SUBSTRING + structure Text4 : TEXT + structure Char2 : CHAR + structure Char2Array : MONO_ARRAY + structure Char2Array2 : MONO_ARRAY2 + structure Char2ArraySlice : MONO_ARRAY_SLICE + structure Char2Vector : MONO_VECTOR + structure Char2VectorSlice : MONO_VECTOR_SLICE + structure String2 : STRING + structure Substring2 : SUBSTRING + structure Text2 : TEXT + + structure Char1 : CHAR + structure Char1Array : MONO_ARRAY + structure Char1Array2 : MONO_ARRAY2 + structure Char1ArraySlice : MONO_ARRAY_SLICE + structure Char1Vector : MONO_VECTOR + structure Char1VectorSlice : MONO_VECTOR_SLICE + structure String1 : STRING + structure Substring1 : SUBSTRING + structure Text1 : TEXT + sharing type MLton.IntInf.t = IntInf.int sharing type MLton.Process.pid = Posix.Process.pid sharing type MLton.ProcEnv.gid = Posix.ProcEnv.gid @@ -578,6 +606,38 @@ sharing type Real64Array2.elem = Real64.real sharing type Real64Array2.vector = Real64Vector.vector sharing type Unix.exit_status = Posix.Process.exit_status + sharing type WideChar.string = WideString.string + sharing type WideCharArray.elem = WideChar.char + sharing type WideCharArray.vector = WideCharVector.vector + sharing type WideCharArraySlice.elem = WideChar.char + sharing type WideCharArraySlice.array = WideCharArray.array + sharing type WideCharArraySlice.vector = WideCharVector.vector + sharing type WideCharArraySlice.vector_slice = WideCharVectorSlice.slice + sharing type WideCharVector.elem = WideChar.char + sharing type WideCharVector.vector = WideString.string + sharing type WideCharVectorSlice.elem = WideChar.char + sharing type WideCharVectorSlice.vector = WideString.string + sharing type WideCharVectorSlice.slice = WideSubstring.substring + sharing type WideString.string = WideCharVector.vector + sharing type WideString.char = WideChar.char + sharing type WideSubstring.substring = WideCharVectorSlice.slice + sharing type WideSubstring.string = WideString.string + sharing type WideSubstring.char = WideChar.char + sharing type WideText.Char.char = WideChar.char + sharing type WideText.String.string = WideString.string + sharing type WideText.Substring.substring = WideSubstring.substring + sharing type WideText.CharVector.vector = WideCharVector.vector + sharing type WideText.CharArray.array = WideCharArray.array + sharing type WideText.CharArraySlice.slice = WideCharArraySlice.slice + sharing type WideText.CharVectorSlice.slice = WideCharVectorSlice.slice +(* + sharing type WideTextPrimIO.array = WideCharArray.array + sharing type WideTextPrimIO.array_slice = WideCharArraySlice.slice + sharing type WideTextPrimIO.elem = WideChar.char + sharing type WideTextPrimIO.pos = Position.int + sharing type WideTextPrimIO.vector = WideCharVector.vector + sharing type WideTextPrimIO.vector_slice = WideCharVectorSlice.slice +*) sharing type WordArray.elem = word sharing type WordArray.vector = WordVector.vector sharing type WordArraySlice.elem = word @@ -627,6 +687,91 @@ sharing type MLton.BinIO.outstream = BinIO.outstream sharing type MLton.TextIO.instream = TextIO.instream sharing type MLton.TextIO.outstream = TextIO.outstream + + (* extensions *) + sharing type Char4.string = String4.string + sharing type Char4Array.elem = Char4.char + sharing type Char4Array.vector = Char4Vector.vector + sharing type Char4ArraySlice.elem = Char4.char + sharing type Char4ArraySlice.array = Char4Array.array + sharing type Char4ArraySlice.vector = Char4Vector.vector + sharing type Char4ArraySlice.vector_slice = Char4VectorSlice.slice + sharing type Char4Vector.elem = Char4.char + sharing type Char4Vector.vector = String4.string + sharing type Char4VectorSlice.elem = Char4.char + sharing type Char4VectorSlice.vector = String4.string + sharing type Char4VectorSlice.slice = Substring4.substring + sharing type String4.string = Char4Vector.vector + sharing type String4.char = Char4.char + sharing type Substring4.substring = Char4VectorSlice.slice + sharing type Substring4.string = String4.string + sharing type Substring4.char = Char4.char + sharing type Text4.Char.char = Char4.char + sharing type Text4.String.string = String4.string + sharing type Text4.Substring.substring = Substring4.substring + sharing type Text4.CharVector.vector = Char4Vector.vector + sharing type Text4.CharArray.array = Char4Array.array + sharing type Text4.CharArraySlice.slice = Char4ArraySlice.slice + sharing type Text4.CharVectorSlice.slice = Char4VectorSlice.slice + sharing type Char2.string = String2.string + sharing type Char2Array.elem = Char2.char + sharing type Char2Array.vector = Char2Vector.vector + sharing type Char2ArraySlice.elem = Char2.char + sharing type Char2ArraySlice.array = Char2Array.array + sharing type Char2ArraySlice.vector = Char2Vector.vector + sharing type Char2ArraySlice.vector_slice = Char2VectorSlice.slice + sharing type Char2Vector.elem = Char2.char + sharing type Char2Vector.vector = String2.string + sharing type Char2VectorSlice.elem = Char2.char + sharing type Char2VectorSlice.vector = String2.string + sharing type Char2VectorSlice.slice = Substring2.substring + sharing type String2.string = Char2Vector.vector + sharing type String2.char = Char2.char + sharing type Substring2.substring = Char2VectorSlice.slice + sharing type Substring2.string = String2.string + sharing type Substring2.char = Char2.char + sharing type Text2.Char.char = Char2.char + sharing type Text2.String.string = String2.string + sharing type Text2.Substring.substring = Substring2.substring + sharing type Text2.CharVector.vector = Char2Vector.vector + sharing type Text2.CharArray.array = Char2Array.array + sharing type Text2.CharArraySlice.slice = Char2ArraySlice.slice + sharing type Text2.CharVectorSlice.slice = Char2VectorSlice.slice + sharing type Char1.string = String1.string + sharing type Char1Array.elem = Char1.char + sharing type Char1Array.vector = Char1Vector.vector + sharing type Char1ArraySlice.elem = Char1.char + sharing type Char1ArraySlice.array = Char1Array.array + sharing type Char1ArraySlice.vector = Char1Vector.vector + sharing type Char1ArraySlice.vector_slice = Char1VectorSlice.slice + sharing type Char1Vector.elem = Char1.char + sharing type Char1Vector.vector = String1.string + sharing type Char1VectorSlice.elem = Char1.char + sharing type Char1VectorSlice.vector = String1.string + sharing type Char1VectorSlice.slice = Substring1.substring + sharing type String1.string = Char1Vector.vector + sharing type String1.char = Char1.char + sharing type Substring1.substring = Char1VectorSlice.slice + sharing type Substring1.string = String1.string + sharing type Substring1.char = Char1.char + sharing type Text1.Char.char = Char1.char + sharing type Text1.String.string = String1.string + sharing type Text1.Substring.substring = Substring1.substring + sharing type Text1.CharVector.vector = Char1Vector.vector + sharing type Text1.CharArray.array = Char1Array.array + sharing type Text1.CharArraySlice.slice = Char1ArraySlice.slice + sharing type Text1.CharVectorSlice.slice = Char1VectorSlice.slice + (* Bind the Char1=Char and Char4=WideChar *) + sharing type Char1Array.array = CharArray.array + sharing type Char1ArraySlice.array_slice = CharArraySlice.array_slice + sharing type String1.string = String.string + sharing type Substring1.substring = Substring.string + sharing type Char1.char = Char.char + sharing type Char4Array.array = WideCharArray.array + sharing type Char4ArraySlice.array_slice = WideCharArraySlice.array_slice + sharing type String4.string = WideString.string + sharing type Substring4.substring = WideSubstring.string + sharing type Char4.char = WideChar.char end (* bool is already defined as bool and so cannot be shared. * So, we where these to get the needed sharing. @@ -773,3 +918,12 @@ where type Word31.word = Word31.word where type Word32.word = Word32.word where type Word64.word = Word64.word + (* Top-level types for wide string and char constants *) + where type WideChar.char = WideChar.char + where type WideString.string = WideString.string + where type Char1.char = Char1.char + where type Char2.char = Char2.char + where type Char4.char = Char4.char + where type String1.string = String1.string + where type String2.string = String2.string + where type String4.string = String4.string Modified: mlton/branches/unicode/basis-library/libs/basis-extra/top-level/basis.sml =================================================================== --- mlton/trunk/basis-library/libs/basis-extra/top-level/basis.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-extra/top-level/basis.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -171,7 +171,6 @@ structure SysWord = SysWord structure Unix = Unix structure UnixSock = UnixSock -(* structure WideChar = WideChar structure WideCharArray = WideCharArray structure WideCharArray2 = WideCharArray2 @@ -181,6 +180,7 @@ structure WideString = WideString structure WideSubstring = WideSubstring structure WideText = WideText +(* structure WideTextPrimIO = WideTextPrimIO *) (* @@ -246,6 +246,34 @@ structure MLton = MLton structure SMLofNJ = SMLofNJ structure Unsafe = Unsafe + + structure Char4 = Char4 + structure Char4Array = Char4Array + structure Char4Array2 = Char4Array2 + structure Char4ArraySlice = Char4ArraySlice + structure Char4Vector = Char4Vector + structure Char4VectorSlice = Char4VectorSlice + structure String4 = String4 + structure WideSubstring4 = Substring4 + structure Text4 = Text4 + structure Char2 = Char2 + structure Char2Array = Char2Array + structure Char2Array2 = Char2Array2 + structure Char2ArraySlice = Char2ArraySlice + structure Char2Vector = Char2Vector + structure Char2VectorSlice = Char2VectorSlice + structure String2 = String2 + structure WideSubstring2 = Substring2 + structure Text2 = Text2 + structure Char1 = Char1 + structure Char1Array = Char1Array + structure Char1Array2 = Char1Array2 + structure Char1ArraySlice = Char1ArraySlice + structure Char1Vector = Char1Vector + structure Char1VectorSlice = Char1VectorSlice + structure String1 = String1 + structure WideSubstring1 = Substring1 + structure Text1 = Text1 open ArrayGlobal BoolGlobal Modified: mlton/branches/unicode/basis-library/misc/primitive.sml =================================================================== --- mlton/trunk/basis-library/misc/primitive.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/misc/primitive.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -275,6 +275,8 @@ val fromInt8 = _prim "WordS8_toWord8": Int8.int -> char; val toWord8 = _prim "WordU8_toWord8": char -> Word8.word; val fromWord8 = _prim "WordU8_toWord8": Word8.word -> char; + val toWord32 = _prim "WordU8_toWord32": char -> Word32.word; + val fromWord32 = _prim "WordU8_toWord32": Word32.word -> char; end structure Char = @@ -296,8 +298,8 @@ val ord = _prim "WordU16_toWord32": char -> int; val toInt16 = _prim "WordS16_toWord16": char -> Int16.int; val fromInt16 = _prim "WordS16_toWord16": Int16.int -> char; - (* val toWord16 = _prim "WordU16_toWord16": char -> Word16.word; *) - (* val fromWord16 = _prim "WordU16_toWord16": Word16.word -> char; *) + val toWord32 = _prim "WordU16_toWord32": char -> Word32.word; + val fromWord32 = _prim "WordU16_toWord32": Word32.word -> char; end structure Char4 = @@ -309,8 +311,6 @@ val ord = _prim "WordU32_toWord32": char -> int; val toInt32 = _prim "WordS32_toWord32": char -> Int32.int; val fromInt32 = _prim "WordS32_toWord32": Int32.int -> char; - (* val toWord32 = _prim "WordU32_toWord32": char -> Word32.word; *) - (* val fromWord32 = _prim "WordU32_toWord32": Word32.word -> char; *) end structure CommandLine = Copied: mlton/branches/unicode/basis-library/text/char.fun (from rev 4246, mlton/trunk/basis-library/text/char.sml) =================================================================== --- mlton/trunk/basis-library/text/char.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/text/char.fun 2005-11-24 00:51:12 UTC (rev 4250) @@ -0,0 +1,303 @@ +(* Copyright (C) 1999-2005 Henry Cejtin, Matthew Fluet, Suresh + * Jagannathan, and Stephen Weeks. + * Copyright (C) 1997-2000 NEC Research Institute. + * + * MLton is released under a BSD-style license. + * See the file MLton-LICENSE for details. + *) + +signature CHAR0 = + sig + eqtype char + eqtype string + + val minChar: char + val maxOrd: int + val maxChar: char + + (* raw chr,ord methods *) + val chr: int -> char + val ord: char -> int + val < : char * char -> bool + + val toUnicode: char -> Word32.word + val fromUnicode: Word32.word -> char + + structure CharVector : + MONO_VECTOR + where type elem = char + where type vector = string + end + +functor CharFn(Char0 : CHAR0) : CHAR_EXTRA = + struct + open Char0 + + (* required operators *) + fun a >= b = not (a < b) + fun a > b = b < a + fun a <= b = not (b < a) + + (* for convenience: *) + val op + = Int.+ + val op - = Int.- + + fun succ c = + if Primitive.safe andalso c = maxChar + then raise Chr + else chr (ord c + 1) + + fun pred c = + if Primitive.safe andalso c = minChar + then raise Chr + else chr (ord c - 1) + + fun chrOpt c = + if Primitive.safe andalso Primitive.Int.gtu (c, maxOrd) + then NONE + else SOME (chr c) + + fun chr c = + case chrOpt c of + NONE => raise Chr + | SOME c => c + + val {compare, ...} = Util.makeCompare (op <) + + val isUpper = Charset.isUpper o toUnicode + val isLower = Charset.isLower o toUnicode + val isDigit = Charset.isDigit o toUnicode + val isAlpha = Charset.isAlpha o toUnicode + val isGraph = Charset.isGraph o toUnicode + val isPrint = Charset.isPrint o toUnicode + val isPunct = Charset.isPunct o toUnicode + val isCntrl = Charset.isCntrl o toUnicode + val isSpace = Charset.isSpace o toUnicode + val isAscii = Charset.isAscii o toUnicode + val isAlphaNum = Charset.isAlphaNum o toUnicode + val isHexDigit = Charset.isHexDigit o toUnicode + + val toUpper = fromUnicode o Charset.toUpper o toUnicode + val toLower = fromUnicode o Charset.toLower o toUnicode + + (* !!! fixme, use a table in SOME situations *) + fun contains s c = CharVector.exists (fn d => c = d) s + fun notContains s c = not (contains s c) + +(* + fun control reader state = + case reader state of + NONE => NONE + | SOME (c, state) => + if #"@" <= c andalso c <= #"_" + then SOME (chr (ord c -? ord #"@"), state) + else NONE + + fun formatChar reader state = + case reader state of + NONE => NONE + | SOME (c, state) => + if Ascii.isSpace c + then SOME ((), state) + else NONE + + fun formatChars reader = + let + fun loop state = + case formatChar reader state of + NONE => state + | SOME ((), state) => loop state + in + loop + end + + val 'a formatSequences: (char, 'a) StringCvt.reader -> 'a -> 'a = + fn reader => + let + fun loop state = + case reader state of + SOME (#"\\", state1) => + (case formatChar reader state1 of + NONE => state + | SOME ((), state2) => + let + val state3 = formatChars reader state2 + in + case reader state3 of + SOME (#"\\", state4) => loop state4 + | _ => state + end) + | _ => state + in + loop + end + + fun 'a scan (reader: (Char.char, 'a) StringCvt.reader) + : (char, 'a) StringCvt.reader = + let + val escape: (char, 'a) StringCvt.reader = + fn state => + case reader state of + NONE => NONE + | SOME (c, state') => + let + fun yes c = SOME (c, state') + in + case c of + #"a" => yes #"\a" + | #"b" => yes #"\b" + | #"t" => yes #"\t" + | #"n" => yes #"\n" + | #"v" => yes #"\v" + | #"f" => yes #"\f" + | #"r" => yes #"\r" + | #"\\" => yes #"\\" + | #"\"" => yes #"\"" + | #"^" => control reader state' + | #"u" => + Reader.mapOpt chrOpt + (StringCvt.digitsExact (StringCvt.HEX, 4) reader) + state' + | _ => (* 3 decimal digits *) + Reader.mapOpt chrOpt + (StringCvt.digitsExact (StringCvt.DEC, 3) + reader) + state + end + val main: (char, 'a) StringCvt.reader = + fn state => + let + val state = formatSequences reader state + in + case reader state of + NONE => NONE + | SOME (c, state) => + if isPrint c + then + case c of + #"\\" => escape state + | #"\"" => NONE + | _ => SOME (c, formatSequences reader state) + else NONE + end + in + main + end + + val fromString = StringCvt.scanString scan + + fun 'a scanC (reader: (char, 'a) StringCvt.reader) + : (char, 'a) StringCvt.reader = + let + val rec escape = + fn state => + case reader state of + NONE => NONE + | SOME (c, state') => + let fun yes c = SOME (c, state') + in case c of + #"a" => yes #"\a" + | #"b" => yes #"\b" + | #"t" => yes #"\t" + | #"n" => yes #"\n" + | #"v" => yes #"\v" + | #"f" => yes #"\f" + | #"r" => yes #"\r" + | #"?" => yes #"?" + | #"\\" => yes #"\\" + | #"\"" => yes #"\"" + | #"'" => yes #"'" + | #"^" => control reader state' + | #"x" => + Reader.mapOpt chrOpt + (StringCvt.digits StringCvt.HEX reader) + state' + | _ => + Reader.mapOpt chrOpt + (StringCvt.digitsPlus (StringCvt.OCT, 3) reader) + state + end + and main = + fn NONE => NONE + | SOME (c, state) => + if isPrint c + then + case c of + #"\\" => escape state + | _ => SOME (c, state) + else NONE + in + main o reader + end + + val fromCString = StringCvt.scanString scanC + +*) + fun padLeft (s: String.string, n: int): String.string = + let + val m = Char1Vector.length s + val diff = n -? m + in if Int.> (diff, 0) + then Char1Vector.concat [Char1Vector.tabulate (diff, fn _ => #"0"), s] + else if diff = 0 + then s + else raise Fail "padLeft" + end + + fun memoize (f: char -> 'a): char -> 'a = + let val a = Array.tabulate (numChars, f o Char.chr) + in fn c => Array.sub (a, Char.ord c) + end + + val toString = + memoize + (fn c => + if isPrint c + then + (case c of + #"\\" => "\\\\" + | #"\"" => "\\\"" + | _ => CharVector.new (1, c)) + else + case c of + #"\a" => "\\a" + | #"\b" => "\\b" + | #"\t" => "\\t" + | #"\n" => "\\n" + | #"\v" => "\\v" + | #"\f" => "\\f" + | #"\r" => "\\r" + | _ => + if c < #" " + then (String.concat + ["\\^", CharVector.new (1, chr (ord c +? ord #"@"))]) + else String.concat + ["\\", padLeft (Int.fmt StringCvt.DEC (ord c), 3)]) + + val toCString = + memoize + (fn c => + if isPrint c + then + (case c of + #"\\" => "\\\\" + | #"\"" => "\\\"" + | #"?" => "\\?" + | #"'" => "\\'" + | _ => String0.str c) + else + case c of + #"\a" => "\\a" + | #"\b" => "\\b" + | #"\t" => "\\t" + | #"\n" => "\\n" + | #"\v" => "\\v" + | #"\f" => "\\f" + | #"\r" => "\\r" + | _ => + String.concat + ["\\", padLeft (Int.fmt StringCvt.OCT (ord c), 3)]) + end + +structure CharGlobal: CHAR_GLOBAL = Char +open CharGlobal Modified: mlton/branches/unicode/basis-library/text/char.sig =================================================================== --- mlton/trunk/basis-library/text/char.sig 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/text/char.sig 2005-11-24 00:51:12 UTC (rev 4250) @@ -38,11 +38,11 @@ val isPrint: char -> bool val isPunct: char -> bool val isSpace: char -> bool - val fromString: string -> char option - val scan: (char, 'a) StringCvt.reader -> (char, 'a) StringCvt.reader - val toString: char -> string - val fromCString: string -> char option - val toCString: char -> string + val fromString: String.string -> char option + val scan: (Char.char, 'a) StringCvt.reader -> (char, 'a) StringCvt.reader + val toString: char -> String.string + val fromCString: String.string -> char option + val toCString: char -> String.string end signature CHAR_EXTRA = Modified: mlton/branches/unicode/basis-library/text/char.sml =================================================================== --- mlton/trunk/basis-library/text/char.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/text/char.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -6,218 +6,63 @@ * See the file MLton-LICENSE for details. *) -structure Char: CHAR_EXTRA = +structure Char1 = struct - open Char0 - - fun control reader state = - case reader state of - NONE => NONE - | SOME (c, state) => - if #"@" <= c andalso c <= #"_" - then SOME (chr (ord c -? ord #"@"), state) - else NONE + open Primitive.Char1 + + type char = char + type string = string - fun formatChar reader state = - case reader state of - NONE => NONE - | SOME (c, state) => - if isSpace c - then SOME ((), state) - else NONE + val minChar = #"\000" + val maxOrd: int = 255 + val maxChar = #"\255" + + val toUnicode = Primitive.Char1.toWord32 + val fromUnicode = Primitive.Char1.toWord32 + + structure CharVector = Char1Vector +end - fun formatChars reader = - let - fun loop state = - case formatChar reader state of - NONE => state - | SOME ((), state) => loop state - in - loop - end - - val 'a formatSequences: (char, 'a) StringCvt.reader -> 'a -> 'a = - fn reader => - let - fun loop state = - case reader state of - SOME (#"\\", state1) => - (case formatChar reader state1 of - NONE => state - | SOME ((), state2) => - let - val state3 = formatChars reader state2 - in - case reader state3 of - SOME (#"\\", state4) => loop state4 - | _ => state - end) - | _ => state - in - loop - end +structure Char2 = + struct + open Primitive.Char2 + + type char = char + type string = string + + val minChar = #"\u0000" + val maxOrd: int = 65535 + val maxChar = #"\uFFFF" + + val toUnicode = Primitive.Char2.toWord32 + val fromUnicode = Primitive.Char2.toWord32 + + structure CharVector = Char2Vector + end - fun 'a scan (reader: (char, 'a) StringCvt.reader) - : (char, 'a) StringCvt.reader = - let - val escape: (char, 'a) StringCvt.reader = - fn state => - case reader state of - NONE => NONE - | SOME (c, state') => - let - fun yes c = SOME (c, state') - in - case c of - #"a" => yes #"\a" - | #"b" => yes #"\b" - | #"t" => yes #"\t" - | #"n" => yes #"\n" - | #"v" => yes #"\v" - | #"f" => yes #"\f" - | #"r" => yes #"\r" - | #"\\" => yes #"\\" - | #"\"" => yes #"\"" - | #"^" => control reader state' - | #"u" => - Reader.mapOpt chrOpt - (StringCvt.digitsExact (StringCvt.HEX, 4) reader) - state' - | _ => (* 3 decimal digits *) - Reader.mapOpt chrOpt - (StringCvt.digitsExact (StringCvt.DEC, 3) - reader) - state - end - val main: (char, 'a) StringCvt.reader = - fn state => - let - val state = formatSequences reader state - in - case reader state of - NONE => NONE - | SOME (c, state) => - if isPrint c - then - case c of - #"\\" => escape state - | #"\"" => NONE - | _ => SOME (c, formatSequences reader state) - else NONE - end - in - main - end - - val fromString = StringCvt.scanString scan - - fun 'a scanC (reader: (char, 'a) StringCvt.reader) - : (char, 'a) StringCvt.reader = - let - val rec escape = - fn state => - case reader state of - NONE => NONE - | SOME (c, state') => - let fun yes c = SOME (c, state') - in case c of - #"a" => yes #"\a" - | #"b" => yes #"\b" - | #"t" => yes #"\t" - | #"n" => yes #"\n" - | #"v" => yes #"\v" - | #"f" => yes #"\f" - | #"r" => yes #"\r" - | #"?" => yes #"?" - | #"\\" => yes #"\\" - | #"\"" => yes #"\"" - | #"'" => yes #"'" - | #"^" => control reader state' - | #"x" => - Reader.mapOpt chrOpt - (StringCvt.digits StringCvt.HEX reader) - state' - | _ => - Reader.mapOpt chrOpt - (StringCvt.digitsPlus (StringCvt.OCT, 3) reader) - state - end - and main = - fn NONE => NONE - | SOME (c, state) => - if isPrint c - then - case c of - #"\\" => escape state - | _ => SOME (c, state) - else NONE - in - main o reader - end - - val fromCString = StringCvt.scanString scanC - - fun padLeft (s: string, n: int): string = - let - val m = String.size s - val diff = n -? m - in if Int.> (diff, 0) - then String.concat [String.new (diff, #"0"), s] - else if diff = 0 - then s - else raise Fail "padLeft" - end - - val toString = - memoize - (fn c => - if isPrint c - then - (case c of - #"\\" => "\\\\" - | #"\"" => "\\\"" - | _ => String0.str c) - else - case c of - #"\a" => "\\a" - | #"\b" => "\\b" - | #"\t" => "\\t" - | #"\n" => "\\n" - | #"\v" => "\\v" - | #"\f" => "\\f" - | #"\r" => "\\r" - | _ => - if c < #" " - then (String.concat - ["\\^", String0.str (chr (ord c +? ord #"@"))]) - else String.concat - ["\\", padLeft (Int.fmt StringCvt.DEC (ord c), 3)]) +structure Char4 = + struct + open Primitive.Char2 - val toCString = - memoize - (fn c => - if isPrint c - then - (case c of - #"\\" => "\\\\" - | #"\"" => "\\\"" - | #"?" => "\\?" - | #"'" => "\\'" - | _ => String0.str c) - else - case c of - #"\a" => "\\a" - | #"\b" => "\\b" - | #"\t" => "\\t" - | #"\n" => "\\n" - | #"\v" => "\\v" - | #"\f" => "\\f" - | #"\r" => "\\r" - | _ => - String.concat - ["\\", padLeft (Int.fmt StringCvt.OCT (ord c), 3)]) + type char = char + type string = string + + val minChar = #"\U00000000" + val maxOrd: int = 4294967295 + val maxChar = #"\UFFFFFFFF" + + fun toUnicode x = x + fun fromUnicode x = x + + structure CharVector = Char4Vector end +structure Char1 : CHAR_EXTRA = CharFn(Char1) +structure Char2 : CHAR_EXTRA = CharFn(Char2) +structure Char4 : CHAR_EXTRA = CharFn(Char4) + +structure Char = Char1 +structure WideChar = Char4 + structure CharGlobal: CHAR_GLOBAL = Char open CharGlobal - Deleted: mlton/branches/unicode/basis-library/text/char0.sml =================================================================== --- mlton/trunk/basis-library/text/char0.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/text/char0.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -1,97 +0,0 @@ -(* Copyright (C) 1999-2005 Henry Cejtin, Matthew Fluet, Suresh - * Jagannathan, and Stephen Weeks. - * Copyright (C) 1997-2000 NEC Research Institute. - * - * MLton is released under a BSD-style license. - * See the file MLton-LICENSE for details. - *) - -structure Char0 = - struct - open Primitive.Int Primitive.Char - - type char = char - type string = string - - val minChar = #"\000" - val numChars: int = 256 - val maxOrd: int = 255 - val maxChar = #"\255" - - fun succ c = - if Primitive.safe andalso c = maxChar - then raise Chr - else Primitive.Char.chr (ord c + 1) - - fun pred c = - if Primitive.safe andalso c = minChar - then raise Chr - else Primitive.Char.chr (ord c - 1) - - fun chrOpt c = - if Primitive.safe andalso Primitive.Int.gtu (c, maxOrd) - then NONE - else SOME (Primitive.Char.chr c) - - fun chr c = - case chrOpt c of - NONE => raise Chr - | SOME c => c - - val {compare, ...} = Util.makeCompare (op <) - - structure String = String0 - - fun oneOf s = - let - val a = Array.array (numChars, false) - val n = String.size s - fun loop i = - if Primitive.Int.>= (i, n) then () - else (Array.update (a, ord (String.sub (s, i)), true) - ; loop (i + 1)) - in loop 0 - ; fn c => Array.sub (a, ord c) - end - val contains = oneOf - - fun notOneOf s = not o (oneOf s) - val notContains = notOneOf - - fun memoize (f: char -> 'a): char -> 'a = - let val a = Array.tabulate (numChars, f o chr) - in fn c => Array.sub (a, ord c) - end - - local - val not = fn f => memoize (not o f) - infix or andd - fun f or g = memoize (fn c => f c orelse g c) - fun f andd g = memoize (fn c => f c andalso g c) - in - val isLower = oneOf "abcdefghijklmnopqrstuvwxyz" - val isUpper = oneOf "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - val isDigit = oneOf "0123456789" - val isAlpha = isUpper or isLower - val isHexDigit = isDigit or (oneOf "abcdefABCDEF") - val isAlphaNum = isAlpha or isDigit - val isPrint = fn c => #" " <= c andalso c <= #"~" - val isSpace = oneOf " \t\r\n\v\f" - val isGraph = (not isSpace) andd isPrint - val isPunct = isGraph andd (not isAlphaNum) - val isCntrl = not isPrint - val isAscii = fn c => c < #"\128" - end - - local - fun make (lower, upper, diff) = - memoize (fn c => if lower <= c andalso c <= upper - then chr (ord c +? diff) - else c) - val diff = ord #"A" - ord #"a" - in - val toLower = make (#"A", #"Z", ~diff) - val toUpper = make (#"a", #"z", diff) - end - end - Added: mlton/branches/unicode/basis-library/text/charset.sml =================================================================== --- mlton/trunk/basis-library/text/charset.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/text/charset.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -0,0 +1,138 @@ +signature CHARSET = + sig + type t = Word32.word + + val isAscii: t -> bool + val isAlpha: t -> bool + val isAlphaNum: t -> bool + val isCntrl: t -> bool + val isDigit: t -> bool + val isGraph: t -> bool + val isHexDigit: t -> bool + val isLower: t -> bool + val isPrint: t -> bool + val isSpace: t -> bool + val isPunct: t -> bool + val isUpper: t -> bool + + val toUpper: t -> t + val toLower: t -> t + end + +structure Charset :> CHARSET = + struct + local + open Primitive.Word32 + in + infix 5 >> << andb orb xorb + type t = Word32.word + + (* these are computed by running ./hash *) + val size = 32768 + val mask = 0wx7FFF + val shift = 0w14 + val factor = 0w5390 + + fun hash c = ((c >> shift) * factor + c) andb mask + + (* this is computed by running ./parse *) + val unicodedb = "12345678" + val udelta = Vector.fromList [ 0w12, 0w23, 0w22 ] + val ldelta = Vector.fromList [ 0w2, 0w3, 0w5 ] + + (* decode the compressed unicode database. + * Each entry in the resulting table has format: + * bits [ 0, 21) = the Unicode code point in this bucket + * bits [ 21, 28) = the uppercase delta + * bits [ 28, 30) = CLASS = LETTER | NUMERAL | CONTROL | PUNCTUATION + * bits [ 30, 32) = CASE = UPPER | LOWER | WHITESPACE | (other) + *) + val CODEPOINT = 0wx001FFFFF + val CLASS = 0wx30000000 + val LETTER = 0wx00000000 + val NUMERAL = 0wx10000000 + val CONTROL = 0wx20000000 + val PUNCTUATION = 0wx30000000 + val CASE = 0wxC0000000 + val UPPER = 0wx00000000 + val LOWER = 0wx40000000 + val WHITESPACE = 0wx80000000 + val DELTASHIFT = 0w21 + val DELTAMASK = 0wx7F + val table = + let + val a = Array.tabulate (size, fn _ => 0w0) + in + Array.vector a + end + + fun fetch c = + let + val x = toInt (hash c) + val v = Vector.sub (table, x) + in + if c = v andb CODEPOINT then SOME v else + (* only 6 unicode chars fail that test, catch them here: *) + let + val v = Vector.sub (table, Primitive.Int.+ (x, 1)) + in + if c = v andb CODEPOINT then SOME v else NONE + end + end + + fun isClass class c = + case fetch c of + NONE => false + | SOME v => v andb CLASS = class + + val isAlpha = isClass LETTER + val isDigit = isClass NUMERAL + val isCntrl = isClass CONTROL + val isPunct = isClass PUNCTUATION + + fun isCase cs c = + case fetch c of + NONE => false + | SOME v => v andb CASE = cs + + val isUpper = isCase UPPER + val isLower = isCase LOWER + val isSpace = isCase WHITESPACE + + (* derived methods *) + fun isAscii c = c < 0w128 + + (* Both LETTER and NUMERAL have a 0 in bit 28 *) + fun isAlphaNum c = + case fetch c of + NONE => false + | SOME v => c andb CONTROL = 0w0 + + fun isPrint c = + case fetch c of + NONE => false (* complement of control, excludes non-unicode *) + | SOME v => v andb CLASS <> CONTROL + + (* printable, but not whitespace *) + fun isGraph c = + case fetch c of + NONE => false + | SOME v => v andb CLASS <> CONTROL andalso v andb CASE <> WHITESPACE + + fun isHexDigit c = false (* !!! damn !!! *) + + (* Use the delta tables to convert case + * We exploit the fact that a character cannot have both + * uppercase and lowercase mappings simultaneously. + *) + fun delta v = toInt (v >> DELTASHIFT andb DELTAMASK) + fun toLower c = + case fetch c of + NONE => c + | SOME v => c + Vector.sub (ldelta, delta v) + fun toUpper c = + case fetch c of + NONE => c + | SOME v => c + Vector.sub (udelta, delta v) + end + end Modified: mlton/branches/unicode/basis-library/text/string-cvt.sml =================================================================== --- mlton/trunk/basis-library/text/string-cvt.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/text/string-cvt.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -6,9 +6,14 @@ * See the file MLton-LICENSE for details. *) +(* The String and Char structures are not yet available at this point. + * They need the StringCvt structure for their signatures. + * Therefore, we use CharVector methods. + *) structure StringCvt: STRING_CVT_EXTRA = struct open Reader + structure Char = Primitive.Char val wordFromInt = Primitive.Word32.fromInt @@ -31,25 +36,22 @@ open Primitive.Int - structure Char = Char0 - structure String = String0 - local fun pad f (c: char) i s = let - val n = String.size s + val n = CharVector.length s in if n >= i then s - else f (s, String0.vector (i -? n, c)) + else f (s, CharVector.vector (i -? n, c)) end in - val padLeft = pad (fn (s, pad) => String.^ (pad, s)) - val padRight = pad String.^ + val padLeft = pad (fn (s, pad) => CharVector.append (pad, s)) + val padRight = pad CharVector.append end fun splitl p f src = - let fun done chars = String0.implode (rev chars) + let fun done chars = CharVector.fromList (rev chars) fun loop (src, chars) = case f src of NONE => (done chars, src) @@ -63,14 +65,12 @@ fun takel p f s = #1 (splitl p f s) fun dropl p f s = #2 (splitl p f s) - fun skipWS x = dropl Char.isSpace x - type cs = int fun stringReader (s: string): (char, cs) reader = - fn i => if i >= String.size s + fn i => if i >= CharVector.length s then NONE - else SOME (String.sub (s, i), i + 1) + else SOME (CharVector.sub (s, i), i + 1) fun 'a scanString (f: ((char, cs) reader -> ('a, cs) reader)) (s: string) : 'a option = @@ -79,6 +79,24 @@ | SOME (a, _) => SOME a local + val numChars = 256 + fun memoize (f: char -> 'a): char -> 'a = + let val a = Array.tabulate (numChars, f o Char.chr) + in fn c => Array.sub (a, Char.ord c) + end + fun oneOf s = + let + val a = Array.array (numChars, false) + val n = CharVector.length s + fun loop i = + if Primitive.Int.>= (i, n) then () + else (Array.update (a, Char.ord (CharVector.sub (s, i)), true) + ; loop (i + 1)) + in loop 0 + ; fn c => Array.sub (a, Char.ord c) + end + val isSpace = oneOf " \t\r\n\v\f\u0085\u00A0" (* 85, A0 are latin spaces *) + fun range (add: int, cmin: char, cmax: char): char -> int option = let val min = Char.ord cmin in fn c => if Char.<= (cmin, c) andalso Char.<= (c, cmax) @@ -87,7 +105,7 @@ end fun 'a combine (ds: (char -> 'a option) list): char -> 'a option = - Char.memoize + memoize (fn c => let val rec loop = @@ -99,13 +117,14 @@ in loop ds end) - val bin = Char.memoize (range (0, #"0", #"1")) - val oct = Char.memoize (range (0, #"0", #"7")) - val dec = Char.memoize (range (0, #"0", #"9")) + val bin = memoize (range (0, #"0", #"1")) + val oct = memoize (range (0, #"0", #"7")) + val dec = memoize (range (0, #"0", #"9")) val hex = combine [range (0, #"0", #"9"), range (10, #"a", #"f"), range (10, #"A", #"F")] in + fun skipWS x = dropl isSpace x fun charToDigit (radix: radix): char -> int option = case radix of BIN => bin @@ -195,5 +214,5 @@ | SOME n => loop (n, state) end - fun digitToChar (n: int): char = String.sub ("0123456789ABCDEF", n) + fun digitToChar (n: int): char = CharVector.sub ("0123456789ABCDEF", n) end Copied: mlton/branches/unicode/basis-library/text/string.fun (from rev 4246, mlton/trunk/basis-library/text/string.sml) =================================================================== --- mlton/trunk/basis-li... [truncated message content] |
From: Stephen W. <sw...@ml...> - 2005-11-23 21:43:36
|
Import unicode working copy from carrot ---------------------------------------------------------------------- A mlton/branches/unicode/ U mlton/branches/unicode/basis-library/arrays-and-vectors/mono.sml U mlton/branches/unicode/basis-library/integer/word.sml U mlton/branches/unicode/basis-library/libs/basis-2002/top-level/Makefile U mlton/branches/unicode/basis-library/libs/basis-2002/top-level/basis.sig U mlton/branches/unicode/basis-library/libs/basis-2002/top-level/generate-overloads.sml U mlton/branches/unicode/basis-library/libs/basis-2002/top-level/overloads.sml U mlton/branches/unicode/basis-library/libs/basis-2002/top-level/top-level.sml U mlton/branches/unicode/basis-library/libs/basis-extra/basis-extra.mlb U mlton/branches/unicode/basis-library/libs/basis-extra/top-level/basis.sig U mlton/branches/unicode/basis-library/libs/basis-extra/top-level/basis.sml U mlton/branches/unicode/basis-library/misc/primitive.sml A mlton/branches/unicode/basis-library/text/char.fun U mlton/branches/unicode/basis-library/text/char.sig U mlton/branches/unicode/basis-library/text/char.sml D mlton/branches/unicode/basis-library/text/char0.sml A mlton/branches/unicode/basis-library/text/charset.sml U mlton/branches/unicode/basis-library/text/string-cvt.sml A mlton/branches/unicode/basis-library/text/string.fun U mlton/branches/unicode/basis-library/text/string.sml D mlton/branches/unicode/basis-library/text/string0.sml A mlton/branches/unicode/basis-library/text/substring.fun U mlton/branches/unicode/basis-library/text/substring.sml U mlton/branches/unicode/basis-library/text/text.sml A mlton/branches/unicode/basis-library/text/unicode-4.1.0/ A mlton/branches/unicode/basis-library/text/unicode-4.1.0/PropList.txt.gz A mlton/branches/unicode/basis-library/text/unicode-4.1.0/UnicodeData.txt.gz ---------------------------------------------------------------------- Copied: mlton/branches/unicode (from rev 4246, mlton/trunk) Modified: mlton/branches/unicode/basis-library/arrays-and-vectors/mono.sml =================================================================== --- mlton/trunk/basis-library/arrays-and-vectors/mono.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/arrays-and-vectors/mono.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -61,14 +61,44 @@ = EqMono (type elem = char) open S in - structure CharArray = Array - structure CharArray2 = Array2 - structure CharArraySlice = ArraySlice - structure CharVector = Vector - structure CharVectorSlice = VectorSlice - val _ = CharVector.fromArray: CharArray.array -> CharVector.vector + structure Char1Array = Array + structure Char1Array2 = Array2 + structure Char1ArraySlice = ArraySlice + structure Char1Vector = Vector + structure Char1VectorSlice = VectorSlice + val _ = Char1Vector.fromArray: Char1Array.array -> Char1Vector.vector end local + structure S:> + EQ_MONO + where type Array.elem = Char2.char + where type Vector.vector = String2.string + = EqMono (type elem = Char2.char) + open S +in + structure Char2Array = Array + structure Char2Array2 = Array2 + structure Char2ArraySlice = ArraySlice + structure Char2Vector = Vector + structure Char2VectorSlice = VectorSlice + val _ = Char2Vector.fromArray: Char2Array.array -> Char2Vector.vector +end +local + structure S:> + EQ_MONO + where type Array.elem = Char4.char + where type Vector.vector = String4.string + = EqMono (type elem = Char4.char) + open S +in + structure Char4Array = Array + structure Char4Array2 = Array2 + structure Char4ArraySlice = ArraySlice + structure Char4Vector = Vector + structure Char4VectorSlice = VectorSlice + val _ = Char4Vector.fromArray: Char4Array.array -> Char4Vector.vector +end +local structure S = EqMono (type elem = Int8.int) open S in @@ -182,6 +212,18 @@ structure Word64Array2 = Array2 end +structure CharVector = Char1Vector +structure CharVectorSlice = Char1VectorSlice +structure CharArray = Char1Array +structure CharArraySlice = Char1ArraySlice +structure CharArray2 = Char1Array2 + +structure WideCharVector = Char4Vector +structure WideCharVectorSlice = Char4VectorSlice +structure WideCharArray = Char4Array +structure WideCharArraySlice = Char4ArraySlice +structure WideCharArray2 = Char4Array2 + structure IntVector = Int32Vector structure IntVectorSlice = Int32VectorSlice structure IntArray = Int32Array Modified: mlton/branches/unicode/basis-library/integer/word.sml =================================================================== --- mlton/trunk/basis-library/integer/word.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/integer/word.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -75,7 +75,7 @@ let val chars = StringCvt.digitToChar (toInt (q mod radix)) :: chars val q = q div radix in if q = zero - then String0.implode chars + then CharVector.fromList chars else loop (q, chars) end in loop (w, []) Modified: mlton/branches/unicode/basis-library/libs/basis-2002/top-level/Makefile =================================================================== --- mlton/trunk/basis-library/libs/basis-2002/top-level/Makefile 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-2002/top-level/Makefile 2005-11-24 00:51:12 UTC (rev 4250) @@ -9,7 +9,7 @@ overloads.sml: $(GEN).sml mlton $(GEN).sml - $(GEN) >overloads.sml + ./$(GEN) >overloads.sml .PHONY: clean clean: Modified: mlton/branches/unicode/basis-library/libs/basis-2002/top-level/basis.sig =================================================================== --- mlton/trunk/basis-library/libs/basis-2002/top-level/basis.sig 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-2002/top-level/basis.sig 2005-11-24 00:51:12 UTC (rev 4250) @@ -242,7 +242,6 @@ structure SysWord : WORD structure Unix : UNIX structure UnixSock : UNIX_SOCK -(* structure WideChar : CHAR structure WideCharArray : MONO_ARRAY structure WideCharArray2 : MONO_ARRAY2 @@ -252,9 +251,8 @@ structure WideString : STRING structure WideSubstring : SUBSTRING structure WideText : TEXT +(* structure WideTextPrimIO : PRIM_IO -*) -(* structure Windows : WINDOWS *) structure Word1: WORD @@ -552,6 +550,38 @@ sharing type Real64Array2.elem = Real64.real sharing type Real64Array2.vector = Real64Vector.vector sharing type Unix.exit_status = Posix.Process.exit_status + sharing type WideChar.string = WideString.string + sharing type WideCharArray.elem = WideChar.char + sharing type WideCharArray.vector = WideCharVector.vector + sharing type WideCharArraySlice.elem = WideChar.char + sharing type WideCharArraySlice.array = WideCharArray.array + sharing type WideCharArraySlice.vector = WideCharVector.vector + sharing type WideCharArraySlice.vector_slice = WideCharVectorSlice.slice + sharing type WideCharVector.elem = WideChar.char + sharing type WideCharVector.vector = WideString.string + sharing type WideCharVectorSlice.elem = WideChar.char + sharing type WideCharVectorSlice.vector = WideString.string + sharing type WideCharVectorSlice.slice = WideSubstring.substring + sharing type WideString.string = WideCharVector.vector + sharing type WideString.char = WideChar.char + sharing type WideSubstring.substring = WideCharVectorSlice.slice + sharing type WideSubstring.string = WideString.string + sharing type WideSubstring.char = WideChar.char + sharing type WideText.Char.char = WideChar.char + sharing type WideText.String.string = WideString.string + sharing type WideText.Substring.substring = WideSubstring.substring + sharing type WideText.CharVector.vector = WideCharVector.vector + sharing type WideText.CharArray.array = WideCharArray.array + sharing type WideText.CharArraySlice.slice = WideCharArraySlice.slice + sharing type WideText.CharVectorSlice.slice = WideCharVectorSlice.slice +(* + sharing type WideTextPrimIO.array = WideCharArray.array + sharing type WideTextPrimIO.array_slice = WideCharArraySlice.slice + sharing type WideTextPrimIO.elem = WideChar.char + sharing type WideTextPrimIO.pos = Position.int + sharing type WideTextPrimIO.vector = WideCharVector.vector + sharing type WideTextPrimIO.vector_slice = WideCharVectorSlice.slice +*) sharing type WordArray.elem = word sharing type WordArray.vector = WordVector.vector sharing type WordArraySlice.elem = word Modified: mlton/branches/unicode/basis-library/libs/basis-2002/top-level/generate-overloads.sml =================================================================== --- mlton/trunk/basis-library/libs/basis-2002/top-level/generate-overloads.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-2002/top-level/generate-overloads.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -24,7 +24,7 @@ @ List.map (List.tabulate (32, fn i => i + 1) @ [64], fn i => concat ["Word", Int.toString i]) -val text = ["Char", "String"] +val text = ["Char", "String", "WideChar", "WideString", "Char2", "String2"] (* Order matters here in the appends, since the first element will be the * default. Modified: mlton/branches/unicode/basis-library/libs/basis-2002/top-level/overloads.sml =================================================================== --- mlton/trunk/basis-library/libs/basis-2002/top-level/overloads.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-2002/top-level/overloads.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -1,10 +1,3 @@ -(* Copyright (C) 2002-2005 Henry Cejtin, Matthew Fluet, Suresh - * Jagannathan, and Stephen Weeks. - * - * MLton is released under a BSD-style license. - * See the file MLton-LICENSE for details. - *) - (* This file is automatically generated. Do not edit. *) _overload 2 ~ : 'a -> 'a @@ -602,6 +595,10 @@ and LargeReal.< and Char.< and String.< +and WideChar.< +and WideString.< +and Char2.< +and String2.< _overload 1 <= : 'a * 'a -> bool as Int.<= @@ -683,6 +680,10 @@ and LargeReal.<= and Char.<= and String.<= +and WideChar.<= +and WideString.<= +and Char2.<= +and String2.<= _overload 1 > : 'a * 'a -> bool as Int.> @@ -764,6 +765,10 @@ and LargeReal.> and Char.> and String.> +and WideChar.> +and WideString.> +and Char2.> +and String2.> _overload 1 >= : 'a * 'a -> bool as Int.>= @@ -845,3 +850,7 @@ and LargeReal.>= and Char.>= and String.>= +and WideChar.>= +and WideString.>= +and Char2.>= +and String2.>= Modified: mlton/branches/unicode/basis-library/libs/basis-2002/top-level/top-level.sml =================================================================== --- mlton/trunk/basis-library/libs/basis-2002/top-level/top-level.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-2002/top-level/top-level.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -40,6 +40,8 @@ structure Real64Vector = Real64Vector structure RealArray = RealArray structure RealVector = RealVector +structure WideCharArraySlice = WideCharArraySlice +structure WideCharArray = WideCharArray structure Word8Array = Word8Array structure Word8Vector = Word8Vector structure Word16Array = Word16Array Modified: mlton/branches/unicode/basis-library/libs/basis-extra/basis-extra.mlb =================================================================== --- mlton/trunk/basis-library/libs/basis-extra/basis-extra.mlb 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-extra/basis-extra.mlb 2005-11-24 00:51:12 UTC (rev 4250) @@ -47,10 +47,9 @@ ../../arrays-and-vectors/mono-array2.sig ../../arrays-and-vectors/mono-array2.fun ../../arrays-and-vectors/mono.sml - ../../text/string0.sml - ../../text/char0.sml ../../misc/reader.sig ../../misc/reader.sml + ../../text/charset.sml ../../text/string-cvt.sig ../../text/string-cvt.sml ../../general/bool.sig @@ -58,11 +57,14 @@ ../../integer/integer.sig ../../integer/int.sml ../../text/char.sig + ../../text/char.fun ../../text/char.sml + ../../text/string.sig + ../../text/string.fun + ../../text/string.sml ../../text/substring.sig + ../../text/substring.fun ../../text/substring.sml - ../../text/string.sig - ../../text/string.sml ../../misc/C.sig ../../misc/C.sml ../../integer/word.sig Modified: mlton/branches/unicode/basis-library/libs/basis-extra/top-level/basis.sig =================================================================== --- mlton/trunk/basis-library/libs/basis-extra/top-level/basis.sig 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-extra/top-level/basis.sig 2005-11-24 00:51:12 UTC (rev 4250) @@ -242,7 +242,6 @@ structure SysWord : WORD structure Unix : UNIX structure UnixSock : UNIX_SOCK -(* structure WideChar : CHAR structure WideCharArray : MONO_ARRAY structure WideCharArray2 : MONO_ARRAY2 @@ -252,9 +251,8 @@ structure WideString : STRING structure WideSubstring : SUBSTRING structure WideText : TEXT +(* structure WideTextPrimIO : PRIM_IO -*) -(* structure Windows : WINDOWS *) structure Word1: WORD @@ -316,7 +314,37 @@ structure MLton: MLTON structure SMLofNJ: SML_OF_NJ structure Unsafe: UNSAFE + + structure Char4 : CHAR + structure Char4Array : MONO_ARRAY + structure Char4Array2 : MONO_ARRAY2 + structure Char4ArraySlice : MONO_ARRAY_SLICE + structure Char4Vector : MONO_VECTOR + structure Char4VectorSlice : MONO_VECTOR_SLICE + structure String4 : STRING + structure Substring4 : SUBSTRING + structure Text4 : TEXT + structure Char2 : CHAR + structure Char2Array : MONO_ARRAY + structure Char2Array2 : MONO_ARRAY2 + structure Char2ArraySlice : MONO_ARRAY_SLICE + structure Char2Vector : MONO_VECTOR + structure Char2VectorSlice : MONO_VECTOR_SLICE + structure String2 : STRING + structure Substring2 : SUBSTRING + structure Text2 : TEXT + + structure Char1 : CHAR + structure Char1Array : MONO_ARRAY + structure Char1Array2 : MONO_ARRAY2 + structure Char1ArraySlice : MONO_ARRAY_SLICE + structure Char1Vector : MONO_VECTOR + structure Char1VectorSlice : MONO_VECTOR_SLICE + structure String1 : STRING + structure Substring1 : SUBSTRING + structure Text1 : TEXT + sharing type MLton.IntInf.t = IntInf.int sharing type MLton.Process.pid = Posix.Process.pid sharing type MLton.ProcEnv.gid = Posix.ProcEnv.gid @@ -578,6 +606,38 @@ sharing type Real64Array2.elem = Real64.real sharing type Real64Array2.vector = Real64Vector.vector sharing type Unix.exit_status = Posix.Process.exit_status + sharing type WideChar.string = WideString.string + sharing type WideCharArray.elem = WideChar.char + sharing type WideCharArray.vector = WideCharVector.vector + sharing type WideCharArraySlice.elem = WideChar.char + sharing type WideCharArraySlice.array = WideCharArray.array + sharing type WideCharArraySlice.vector = WideCharVector.vector + sharing type WideCharArraySlice.vector_slice = WideCharVectorSlice.slice + sharing type WideCharVector.elem = WideChar.char + sharing type WideCharVector.vector = WideString.string + sharing type WideCharVectorSlice.elem = WideChar.char + sharing type WideCharVectorSlice.vector = WideString.string + sharing type WideCharVectorSlice.slice = WideSubstring.substring + sharing type WideString.string = WideCharVector.vector + sharing type WideString.char = WideChar.char + sharing type WideSubstring.substring = WideCharVectorSlice.slice + sharing type WideSubstring.string = WideString.string + sharing type WideSubstring.char = WideChar.char + sharing type WideText.Char.char = WideChar.char + sharing type WideText.String.string = WideString.string + sharing type WideText.Substring.substring = WideSubstring.substring + sharing type WideText.CharVector.vector = WideCharVector.vector + sharing type WideText.CharArray.array = WideCharArray.array + sharing type WideText.CharArraySlice.slice = WideCharArraySlice.slice + sharing type WideText.CharVectorSlice.slice = WideCharVectorSlice.slice +(* + sharing type WideTextPrimIO.array = WideCharArray.array + sharing type WideTextPrimIO.array_slice = WideCharArraySlice.slice + sharing type WideTextPrimIO.elem = WideChar.char + sharing type WideTextPrimIO.pos = Position.int + sharing type WideTextPrimIO.vector = WideCharVector.vector + sharing type WideTextPrimIO.vector_slice = WideCharVectorSlice.slice +*) sharing type WordArray.elem = word sharing type WordArray.vector = WordVector.vector sharing type WordArraySlice.elem = word @@ -627,6 +687,91 @@ sharing type MLton.BinIO.outstream = BinIO.outstream sharing type MLton.TextIO.instream = TextIO.instream sharing type MLton.TextIO.outstream = TextIO.outstream + + (* extensions *) + sharing type Char4.string = String4.string + sharing type Char4Array.elem = Char4.char + sharing type Char4Array.vector = Char4Vector.vector + sharing type Char4ArraySlice.elem = Char4.char + sharing type Char4ArraySlice.array = Char4Array.array + sharing type Char4ArraySlice.vector = Char4Vector.vector + sharing type Char4ArraySlice.vector_slice = Char4VectorSlice.slice + sharing type Char4Vector.elem = Char4.char + sharing type Char4Vector.vector = String4.string + sharing type Char4VectorSlice.elem = Char4.char + sharing type Char4VectorSlice.vector = String4.string + sharing type Char4VectorSlice.slice = Substring4.substring + sharing type String4.string = Char4Vector.vector + sharing type String4.char = Char4.char + sharing type Substring4.substring = Char4VectorSlice.slice + sharing type Substring4.string = String4.string + sharing type Substring4.char = Char4.char + sharing type Text4.Char.char = Char4.char + sharing type Text4.String.string = String4.string + sharing type Text4.Substring.substring = Substring4.substring + sharing type Text4.CharVector.vector = Char4Vector.vector + sharing type Text4.CharArray.array = Char4Array.array + sharing type Text4.CharArraySlice.slice = Char4ArraySlice.slice + sharing type Text4.CharVectorSlice.slice = Char4VectorSlice.slice + sharing type Char2.string = String2.string + sharing type Char2Array.elem = Char2.char + sharing type Char2Array.vector = Char2Vector.vector + sharing type Char2ArraySlice.elem = Char2.char + sharing type Char2ArraySlice.array = Char2Array.array + sharing type Char2ArraySlice.vector = Char2Vector.vector + sharing type Char2ArraySlice.vector_slice = Char2VectorSlice.slice + sharing type Char2Vector.elem = Char2.char + sharing type Char2Vector.vector = String2.string + sharing type Char2VectorSlice.elem = Char2.char + sharing type Char2VectorSlice.vector = String2.string + sharing type Char2VectorSlice.slice = Substring2.substring + sharing type String2.string = Char2Vector.vector + sharing type String2.char = Char2.char + sharing type Substring2.substring = Char2VectorSlice.slice + sharing type Substring2.string = String2.string + sharing type Substring2.char = Char2.char + sharing type Text2.Char.char = Char2.char + sharing type Text2.String.string = String2.string + sharing type Text2.Substring.substring = Substring2.substring + sharing type Text2.CharVector.vector = Char2Vector.vector + sharing type Text2.CharArray.array = Char2Array.array + sharing type Text2.CharArraySlice.slice = Char2ArraySlice.slice + sharing type Text2.CharVectorSlice.slice = Char2VectorSlice.slice + sharing type Char1.string = String1.string + sharing type Char1Array.elem = Char1.char + sharing type Char1Array.vector = Char1Vector.vector + sharing type Char1ArraySlice.elem = Char1.char + sharing type Char1ArraySlice.array = Char1Array.array + sharing type Char1ArraySlice.vector = Char1Vector.vector + sharing type Char1ArraySlice.vector_slice = Char1VectorSlice.slice + sharing type Char1Vector.elem = Char1.char + sharing type Char1Vector.vector = String1.string + sharing type Char1VectorSlice.elem = Char1.char + sharing type Char1VectorSlice.vector = String1.string + sharing type Char1VectorSlice.slice = Substring1.substring + sharing type String1.string = Char1Vector.vector + sharing type String1.char = Char1.char + sharing type Substring1.substring = Char1VectorSlice.slice + sharing type Substring1.string = String1.string + sharing type Substring1.char = Char1.char + sharing type Text1.Char.char = Char1.char + sharing type Text1.String.string = String1.string + sharing type Text1.Substring.substring = Substring1.substring + sharing type Text1.CharVector.vector = Char1Vector.vector + sharing type Text1.CharArray.array = Char1Array.array + sharing type Text1.CharArraySlice.slice = Char1ArraySlice.slice + sharing type Text1.CharVectorSlice.slice = Char1VectorSlice.slice + (* Bind the Char1=Char and Char4=WideChar *) + sharing type Char1Array.array = CharArray.array + sharing type Char1ArraySlice.array_slice = CharArraySlice.array_slice + sharing type String1.string = String.string + sharing type Substring1.substring = Substring.string + sharing type Char1.char = Char.char + sharing type Char4Array.array = WideCharArray.array + sharing type Char4ArraySlice.array_slice = WideCharArraySlice.array_slice + sharing type String4.string = WideString.string + sharing type Substring4.substring = WideSubstring.string + sharing type Char4.char = WideChar.char end (* bool is already defined as bool and so cannot be shared. * So, we where these to get the needed sharing. @@ -773,3 +918,12 @@ where type Word31.word = Word31.word where type Word32.word = Word32.word where type Word64.word = Word64.word + (* Top-level types for wide string and char constants *) + where type WideChar.char = WideChar.char + where type WideString.string = WideString.string + where type Char1.char = Char1.char + where type Char2.char = Char2.char + where type Char4.char = Char4.char + where type String1.string = String1.string + where type String2.string = String2.string + where type String4.string = String4.string Modified: mlton/branches/unicode/basis-library/libs/basis-extra/top-level/basis.sml =================================================================== --- mlton/trunk/basis-library/libs/basis-extra/top-level/basis.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/libs/basis-extra/top-level/basis.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -171,7 +171,6 @@ structure SysWord = SysWord structure Unix = Unix structure UnixSock = UnixSock -(* structure WideChar = WideChar structure WideCharArray = WideCharArray structure WideCharArray2 = WideCharArray2 @@ -181,6 +180,7 @@ structure WideString = WideString structure WideSubstring = WideSubstring structure WideText = WideText +(* structure WideTextPrimIO = WideTextPrimIO *) (* @@ -246,6 +246,34 @@ structure MLton = MLton structure SMLofNJ = SMLofNJ structure Unsafe = Unsafe + + structure Char4 = Char4 + structure Char4Array = Char4Array + structure Char4Array2 = Char4Array2 + structure Char4ArraySlice = Char4ArraySlice + structure Char4Vector = Char4Vector + structure Char4VectorSlice = Char4VectorSlice + structure String4 = String4 + structure WideSubstring4 = Substring4 + structure Text4 = Text4 + structure Char2 = Char2 + structure Char2Array = Char2Array + structure Char2Array2 = Char2Array2 + structure Char2ArraySlice = Char2ArraySlice + structure Char2Vector = Char2Vector + structure Char2VectorSlice = Char2VectorSlice + structure String2 = String2 + structure WideSubstring2 = Substring2 + structure Text2 = Text2 + structure Char1 = Char1 + structure Char1Array = Char1Array + structure Char1Array2 = Char1Array2 + structure Char1ArraySlice = Char1ArraySlice + structure Char1Vector = Char1Vector + structure Char1VectorSlice = Char1VectorSlice + structure String1 = String1 + structure WideSubstring1 = Substring1 + structure Text1 = Text1 open ArrayGlobal BoolGlobal Modified: mlton/branches/unicode/basis-library/misc/primitive.sml =================================================================== --- mlton/trunk/basis-library/misc/primitive.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/misc/primitive.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -275,6 +275,8 @@ val fromInt8 = _prim "WordS8_toWord8": Int8.int -> char; val toWord8 = _prim "WordU8_toWord8": char -> Word8.word; val fromWord8 = _prim "WordU8_toWord8": Word8.word -> char; + val toWord32 = _prim "WordU8_toWord32": char -> Word32.word; + val fromWord32 = _prim "WordU8_toWord32": Word32.word -> char; end structure Char = @@ -296,8 +298,8 @@ val ord = _prim "WordU16_toWord32": char -> int; val toInt16 = _prim "WordS16_toWord16": char -> Int16.int; val fromInt16 = _prim "WordS16_toWord16": Int16.int -> char; - (* val toWord16 = _prim "WordU16_toWord16": char -> Word16.word; *) - (* val fromWord16 = _prim "WordU16_toWord16": Word16.word -> char; *) + val toWord32 = _prim "WordU16_toWord32": char -> Word32.word; + val fromWord32 = _prim "WordU16_toWord32": Word32.word -> char; end structure Char4 = @@ -309,8 +311,6 @@ val ord = _prim "WordU32_toWord32": char -> int; val toInt32 = _prim "WordS32_toWord32": char -> Int32.int; val fromInt32 = _prim "WordS32_toWord32": Int32.int -> char; - (* val toWord32 = _prim "WordU32_toWord32": char -> Word32.word; *) - (* val fromWord32 = _prim "WordU32_toWord32": Word32.word -> char; *) end structure CommandLine = Copied: mlton/branches/unicode/basis-library/text/char.fun (from rev 4246, mlton/trunk/basis-library/text/char.sml) =================================================================== --- mlton/trunk/basis-library/text/char.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/text/char.fun 2005-11-24 00:51:12 UTC (rev 4250) @@ -0,0 +1,303 @@ +(* Copyright (C) 1999-2005 Henry Cejtin, Matthew Fluet, Suresh + * Jagannathan, and Stephen Weeks. + * Copyright (C) 1997-2000 NEC Research Institute. + * + * MLton is released under a BSD-style license. + * See the file MLton-LICENSE for details. + *) + +signature CHAR0 = + sig + eqtype char + eqtype string + + val minChar: char + val maxOrd: int + val maxChar: char + + (* raw chr,ord methods *) + val chr: int -> char + val ord: char -> int + val < : char * char -> bool + + val toUnicode: char -> Word32.word + val fromUnicode: Word32.word -> char + + structure CharVector : + MONO_VECTOR + where type elem = char + where type vector = string + end + +functor CharFn(Char0 : CHAR0) : CHAR_EXTRA = + struct + open Char0 + + (* required operators *) + fun a >= b = not (a < b) + fun a > b = b < a + fun a <= b = not (b < a) + + (* for convenience: *) + val op + = Int.+ + val op - = Int.- + + fun succ c = + if Primitive.safe andalso c = maxChar + then raise Chr + else chr (ord c + 1) + + fun pred c = + if Primitive.safe andalso c = minChar + then raise Chr + else chr (ord c - 1) + + fun chrOpt c = + if Primitive.safe andalso Primitive.Int.gtu (c, maxOrd) + then NONE + else SOME (chr c) + + fun chr c = + case chrOpt c of + NONE => raise Chr + | SOME c => c + + val {compare, ...} = Util.makeCompare (op <) + + val isUpper = Charset.isUpper o toUnicode + val isLower = Charset.isLower o toUnicode + val isDigit = Charset.isDigit o toUnicode + val isAlpha = Charset.isAlpha o toUnicode + val isGraph = Charset.isGraph o toUnicode + val isPrint = Charset.isPrint o toUnicode + val isPunct = Charset.isPunct o toUnicode + val isCntrl = Charset.isCntrl o toUnicode + val isSpace = Charset.isSpace o toUnicode + val isAscii = Charset.isAscii o toUnicode + val isAlphaNum = Charset.isAlphaNum o toUnicode + val isHexDigit = Charset.isHexDigit o toUnicode + + val toUpper = fromUnicode o Charset.toUpper o toUnicode + val toLower = fromUnicode o Charset.toLower o toUnicode + + (* !!! fixme, use a table in SOME situations *) + fun contains s c = CharVector.exists (fn d => c = d) s + fun notContains s c = not (contains s c) + +(* + fun control reader state = + case reader state of + NONE => NONE + | SOME (c, state) => + if #"@" <= c andalso c <= #"_" + then SOME (chr (ord c -? ord #"@"), state) + else NONE + + fun formatChar reader state = + case reader state of + NONE => NONE + | SOME (c, state) => + if Ascii.isSpace c + then SOME ((), state) + else NONE + + fun formatChars reader = + let + fun loop state = + case formatChar reader state of + NONE => state + | SOME ((), state) => loop state + in + loop + end + + val 'a formatSequences: (char, 'a) StringCvt.reader -> 'a -> 'a = + fn reader => + let + fun loop state = + case reader state of + SOME (#"\\", state1) => + (case formatChar reader state1 of + NONE => state + | SOME ((), state2) => + let + val state3 = formatChars reader state2 + in + case reader state3 of + SOME (#"\\", state4) => loop state4 + | _ => state + end) + | _ => state + in + loop + end + + fun 'a scan (reader: (Char.char, 'a) StringCvt.reader) + : (char, 'a) StringCvt.reader = + let + val escape: (char, 'a) StringCvt.reader = + fn state => + case reader state of + NONE => NONE + | SOME (c, state') => + let + fun yes c = SOME (c, state') + in + case c of + #"a" => yes #"\a" + | #"b" => yes #"\b" + | #"t" => yes #"\t" + | #"n" => yes #"\n" + | #"v" => yes #"\v" + | #"f" => yes #"\f" + | #"r" => yes #"\r" + | #"\\" => yes #"\\" + | #"\"" => yes #"\"" + | #"^" => control reader state' + | #"u" => + Reader.mapOpt chrOpt + (StringCvt.digitsExact (StringCvt.HEX, 4) reader) + state' + | _ => (* 3 decimal digits *) + Reader.mapOpt chrOpt + (StringCvt.digitsExact (StringCvt.DEC, 3) + reader) + state + end + val main: (char, 'a) StringCvt.reader = + fn state => + let + val state = formatSequences reader state + in + case reader state of + NONE => NONE + | SOME (c, state) => + if isPrint c + then + case c of + #"\\" => escape state + | #"\"" => NONE + | _ => SOME (c, formatSequences reader state) + else NONE + end + in + main + end + + val fromString = StringCvt.scanString scan + + fun 'a scanC (reader: (char, 'a) StringCvt.reader) + : (char, 'a) StringCvt.reader = + let + val rec escape = + fn state => + case reader state of + NONE => NONE + | SOME (c, state') => + let fun yes c = SOME (c, state') + in case c of + #"a" => yes #"\a" + | #"b" => yes #"\b" + | #"t" => yes #"\t" + | #"n" => yes #"\n" + | #"v" => yes #"\v" + | #"f" => yes #"\f" + | #"r" => yes #"\r" + | #"?" => yes #"?" + | #"\\" => yes #"\\" + | #"\"" => yes #"\"" + | #"'" => yes #"'" + | #"^" => control reader state' + | #"x" => + Reader.mapOpt chrOpt + (StringCvt.digits StringCvt.HEX reader) + state' + | _ => + Reader.mapOpt chrOpt + (StringCvt.digitsPlus (StringCvt.OCT, 3) reader) + state + end + and main = + fn NONE => NONE + | SOME (c, state) => + if isPrint c + then + case c of + #"\\" => escape state + | _ => SOME (c, state) + else NONE + in + main o reader + end + + val fromCString = StringCvt.scanString scanC + +*) + fun padLeft (s: String.string, n: int): String.string = + let + val m = Char1Vector.length s + val diff = n -? m + in if Int.> (diff, 0) + then Char1Vector.concat [Char1Vector.tabulate (diff, fn _ => #"0"), s] + else if diff = 0 + then s + else raise Fail "padLeft" + end + + fun memoize (f: char -> 'a): char -> 'a = + let val a = Array.tabulate (numChars, f o Char.chr) + in fn c => Array.sub (a, Char.ord c) + end + + val toString = + memoize + (fn c => + if isPrint c + then + (case c of + #"\\" => "\\\\" + | #"\"" => "\\\"" + | _ => CharVector.new (1, c)) + else + case c of + #"\a" => "\\a" + | #"\b" => "\\b" + | #"\t" => "\\t" + | #"\n" => "\\n" + | #"\v" => "\\v" + | #"\f" => "\\f" + | #"\r" => "\\r" + | _ => + if c < #" " + then (String.concat + ["\\^", CharVector.new (1, chr (ord c +? ord #"@"))]) + else String.concat + ["\\", padLeft (Int.fmt StringCvt.DEC (ord c), 3)]) + + val toCString = + memoize + (fn c => + if isPrint c + then + (case c of + #"\\" => "\\\\" + | #"\"" => "\\\"" + | #"?" => "\\?" + | #"'" => "\\'" + | _ => String0.str c) + else + case c of + #"\a" => "\\a" + | #"\b" => "\\b" + | #"\t" => "\\t" + | #"\n" => "\\n" + | #"\v" => "\\v" + | #"\f" => "\\f" + | #"\r" => "\\r" + | _ => + String.concat + ["\\", padLeft (Int.fmt StringCvt.OCT (ord c), 3)]) + end + +structure CharGlobal: CHAR_GLOBAL = Char +open CharGlobal Modified: mlton/branches/unicode/basis-library/text/char.sig =================================================================== --- mlton/trunk/basis-library/text/char.sig 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/text/char.sig 2005-11-24 00:51:12 UTC (rev 4250) @@ -38,11 +38,11 @@ val isPrint: char -> bool val isPunct: char -> bool val isSpace: char -> bool - val fromString: string -> char option - val scan: (char, 'a) StringCvt.reader -> (char, 'a) StringCvt.reader - val toString: char -> string - val fromCString: string -> char option - val toCString: char -> string + val fromString: String.string -> char option + val scan: (Char.char, 'a) StringCvt.reader -> (char, 'a) StringCvt.reader + val toString: char -> String.string + val fromCString: String.string -> char option + val toCString: char -> String.string end signature CHAR_EXTRA = Modified: mlton/branches/unicode/basis-library/text/char.sml =================================================================== --- mlton/trunk/basis-library/text/char.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/text/char.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -6,218 +6,63 @@ * See the file MLton-LICENSE for details. *) -structure Char: CHAR_EXTRA = +structure Char1 = struct - open Char0 - - fun control reader state = - case reader state of - NONE => NONE - | SOME (c, state) => - if #"@" <= c andalso c <= #"_" - then SOME (chr (ord c -? ord #"@"), state) - else NONE + open Primitive.Char1 + + type char = char + type string = string - fun formatChar reader state = - case reader state of - NONE => NONE - | SOME (c, state) => - if isSpace c - then SOME ((), state) - else NONE + val minChar = #"\000" + val maxOrd: int = 255 + val maxChar = #"\255" + + val toUnicode = Primitive.Char1.toWord32 + val fromUnicode = Primitive.Char1.toWord32 + + structure CharVector = Char1Vector +end - fun formatChars reader = - let - fun loop state = - case formatChar reader state of - NONE => state - | SOME ((), state) => loop state - in - loop - end - - val 'a formatSequences: (char, 'a) StringCvt.reader -> 'a -> 'a = - fn reader => - let - fun loop state = - case reader state of - SOME (#"\\", state1) => - (case formatChar reader state1 of - NONE => state - | SOME ((), state2) => - let - val state3 = formatChars reader state2 - in - case reader state3 of - SOME (#"\\", state4) => loop state4 - | _ => state - end) - | _ => state - in - loop - end +structure Char2 = + struct + open Primitive.Char2 + + type char = char + type string = string + + val minChar = #"\u0000" + val maxOrd: int = 65535 + val maxChar = #"\uFFFF" + + val toUnicode = Primitive.Char2.toWord32 + val fromUnicode = Primitive.Char2.toWord32 + + structure CharVector = Char2Vector + end - fun 'a scan (reader: (char, 'a) StringCvt.reader) - : (char, 'a) StringCvt.reader = - let - val escape: (char, 'a) StringCvt.reader = - fn state => - case reader state of - NONE => NONE - | SOME (c, state') => - let - fun yes c = SOME (c, state') - in - case c of - #"a" => yes #"\a" - | #"b" => yes #"\b" - | #"t" => yes #"\t" - | #"n" => yes #"\n" - | #"v" => yes #"\v" - | #"f" => yes #"\f" - | #"r" => yes #"\r" - | #"\\" => yes #"\\" - | #"\"" => yes #"\"" - | #"^" => control reader state' - | #"u" => - Reader.mapOpt chrOpt - (StringCvt.digitsExact (StringCvt.HEX, 4) reader) - state' - | _ => (* 3 decimal digits *) - Reader.mapOpt chrOpt - (StringCvt.digitsExact (StringCvt.DEC, 3) - reader) - state - end - val main: (char, 'a) StringCvt.reader = - fn state => - let - val state = formatSequences reader state - in - case reader state of - NONE => NONE - | SOME (c, state) => - if isPrint c - then - case c of - #"\\" => escape state - | #"\"" => NONE - | _ => SOME (c, formatSequences reader state) - else NONE - end - in - main - end - - val fromString = StringCvt.scanString scan - - fun 'a scanC (reader: (char, 'a) StringCvt.reader) - : (char, 'a) StringCvt.reader = - let - val rec escape = - fn state => - case reader state of - NONE => NONE - | SOME (c, state') => - let fun yes c = SOME (c, state') - in case c of - #"a" => yes #"\a" - | #"b" => yes #"\b" - | #"t" => yes #"\t" - | #"n" => yes #"\n" - | #"v" => yes #"\v" - | #"f" => yes #"\f" - | #"r" => yes #"\r" - | #"?" => yes #"?" - | #"\\" => yes #"\\" - | #"\"" => yes #"\"" - | #"'" => yes #"'" - | #"^" => control reader state' - | #"x" => - Reader.mapOpt chrOpt - (StringCvt.digits StringCvt.HEX reader) - state' - | _ => - Reader.mapOpt chrOpt - (StringCvt.digitsPlus (StringCvt.OCT, 3) reader) - state - end - and main = - fn NONE => NONE - | SOME (c, state) => - if isPrint c - then - case c of - #"\\" => escape state - | _ => SOME (c, state) - else NONE - in - main o reader - end - - val fromCString = StringCvt.scanString scanC - - fun padLeft (s: string, n: int): string = - let - val m = String.size s - val diff = n -? m - in if Int.> (diff, 0) - then String.concat [String.new (diff, #"0"), s] - else if diff = 0 - then s - else raise Fail "padLeft" - end - - val toString = - memoize - (fn c => - if isPrint c - then - (case c of - #"\\" => "\\\\" - | #"\"" => "\\\"" - | _ => String0.str c) - else - case c of - #"\a" => "\\a" - | #"\b" => "\\b" - | #"\t" => "\\t" - | #"\n" => "\\n" - | #"\v" => "\\v" - | #"\f" => "\\f" - | #"\r" => "\\r" - | _ => - if c < #" " - then (String.concat - ["\\^", String0.str (chr (ord c +? ord #"@"))]) - else String.concat - ["\\", padLeft (Int.fmt StringCvt.DEC (ord c), 3)]) +structure Char4 = + struct + open Primitive.Char2 - val toCString = - memoize - (fn c => - if isPrint c - then - (case c of - #"\\" => "\\\\" - | #"\"" => "\\\"" - | #"?" => "\\?" - | #"'" => "\\'" - | _ => String0.str c) - else - case c of - #"\a" => "\\a" - | #"\b" => "\\b" - | #"\t" => "\\t" - | #"\n" => "\\n" - | #"\v" => "\\v" - | #"\f" => "\\f" - | #"\r" => "\\r" - | _ => - String.concat - ["\\", padLeft (Int.fmt StringCvt.OCT (ord c), 3)]) + type char = char + type string = string + + val minChar = #"\U00000000" + val maxOrd: int = 4294967295 + val maxChar = #"\UFFFFFFFF" + + fun toUnicode x = x + fun fromUnicode x = x + + structure CharVector = Char4Vector end +structure Char1 : CHAR_EXTRA = CharFn(Char1) +structure Char2 : CHAR_EXTRA = CharFn(Char2) +structure Char4 : CHAR_EXTRA = CharFn(Char4) + +structure Char = Char1 +structure WideChar = Char4 + structure CharGlobal: CHAR_GLOBAL = Char open CharGlobal - Deleted: mlton/branches/unicode/basis-library/text/char0.sml =================================================================== --- mlton/trunk/basis-library/text/char0.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/text/char0.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -1,97 +0,0 @@ -(* Copyright (C) 1999-2005 Henry Cejtin, Matthew Fluet, Suresh - * Jagannathan, and Stephen Weeks. - * Copyright (C) 1997-2000 NEC Research Institute. - * - * MLton is released under a BSD-style license. - * See the file MLton-LICENSE for details. - *) - -structure Char0 = - struct - open Primitive.Int Primitive.Char - - type char = char - type string = string - - val minChar = #"\000" - val numChars: int = 256 - val maxOrd: int = 255 - val maxChar = #"\255" - - fun succ c = - if Primitive.safe andalso c = maxChar - then raise Chr - else Primitive.Char.chr (ord c + 1) - - fun pred c = - if Primitive.safe andalso c = minChar - then raise Chr - else Primitive.Char.chr (ord c - 1) - - fun chrOpt c = - if Primitive.safe andalso Primitive.Int.gtu (c, maxOrd) - then NONE - else SOME (Primitive.Char.chr c) - - fun chr c = - case chrOpt c of - NONE => raise Chr - | SOME c => c - - val {compare, ...} = Util.makeCompare (op <) - - structure String = String0 - - fun oneOf s = - let - val a = Array.array (numChars, false) - val n = String.size s - fun loop i = - if Primitive.Int.>= (i, n) then () - else (Array.update (a, ord (String.sub (s, i)), true) - ; loop (i + 1)) - in loop 0 - ; fn c => Array.sub (a, ord c) - end - val contains = oneOf - - fun notOneOf s = not o (oneOf s) - val notContains = notOneOf - - fun memoize (f: char -> 'a): char -> 'a = - let val a = Array.tabulate (numChars, f o chr) - in fn c => Array.sub (a, ord c) - end - - local - val not = fn f => memoize (not o f) - infix or andd - fun f or g = memoize (fn c => f c orelse g c) - fun f andd g = memoize (fn c => f c andalso g c) - in - val isLower = oneOf "abcdefghijklmnopqrstuvwxyz" - val isUpper = oneOf "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - val isDigit = oneOf "0123456789" - val isAlpha = isUpper or isLower - val isHexDigit = isDigit or (oneOf "abcdefABCDEF") - val isAlphaNum = isAlpha or isDigit - val isPrint = fn c => #" " <= c andalso c <= #"~" - val isSpace = oneOf " \t\r\n\v\f" - val isGraph = (not isSpace) andd isPrint - val isPunct = isGraph andd (not isAlphaNum) - val isCntrl = not isPrint - val isAscii = fn c => c < #"\128" - end - - local - fun make (lower, upper, diff) = - memoize (fn c => if lower <= c andalso c <= upper - then chr (ord c +? diff) - else c) - val diff = ord #"A" - ord #"a" - in - val toLower = make (#"A", #"Z", ~diff) - val toUpper = make (#"a", #"z", diff) - end - end - Added: mlton/branches/unicode/basis-library/text/charset.sml =================================================================== --- mlton/trunk/basis-library/text/charset.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/text/charset.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -0,0 +1,138 @@ +signature CHARSET = + sig + type t = Word32.word + + val isAscii: t -> bool + val isAlpha: t -> bool + val isAlphaNum: t -> bool + val isCntrl: t -> bool + val isDigit: t -> bool + val isGraph: t -> bool + val isHexDigit: t -> bool + val isLower: t -> bool + val isPrint: t -> bool + val isSpace: t -> bool + val isPunct: t -> bool + val isUpper: t -> bool + + val toUpper: t -> t + val toLower: t -> t + end + +structure Charset :> CHARSET = + struct + local + open Primitive.Word32 + in + infix 5 >> << andb orb xorb + type t = Word32.word + + (* these are computed by running ./hash *) + val size = 32768 + val mask = 0wx7FFF + val shift = 0w14 + val factor = 0w5390 + + fun hash c = ((c >> shift) * factor + c) andb mask + + (* this is computed by running ./parse *) + val unicodedb = "12345678" + val udelta = Vector.fromList [ 0w12, 0w23, 0w22 ] + val ldelta = Vector.fromList [ 0w2, 0w3, 0w5 ] + + (* decode the compressed unicode database. + * Each entry in the resulting table has format: + * bits [ 0, 21) = the Unicode code point in this bucket + * bits [ 21, 28) = the uppercase delta + * bits [ 28, 30) = CLASS = LETTER | NUMERAL | CONTROL | PUNCTUATION + * bits [ 30, 32) = CASE = UPPER | LOWER | WHITESPACE | (other) + *) + val CODEPOINT = 0wx001FFFFF + val CLASS = 0wx30000000 + val LETTER = 0wx00000000 + val NUMERAL = 0wx10000000 + val CONTROL = 0wx20000000 + val PUNCTUATION = 0wx30000000 + val CASE = 0wxC0000000 + val UPPER = 0wx00000000 + val LOWER = 0wx40000000 + val WHITESPACE = 0wx80000000 + val DELTASHIFT = 0w21 + val DELTAMASK = 0wx7F + val table = + let + val a = Array.tabulate (size, fn _ => 0w0) + in + Array.vector a + end + + fun fetch c = + let + val x = toInt (hash c) + val v = Vector.sub (table, x) + in + if c = v andb CODEPOINT then SOME v else + (* only 6 unicode chars fail that test, catch them here: *) + let + val v = Vector.sub (table, Primitive.Int.+ (x, 1)) + in + if c = v andb CODEPOINT then SOME v else NONE + end + end + + fun isClass class c = + case fetch c of + NONE => false + | SOME v => v andb CLASS = class + + val isAlpha = isClass LETTER + val isDigit = isClass NUMERAL + val isCntrl = isClass CONTROL + val isPunct = isClass PUNCTUATION + + fun isCase cs c = + case fetch c of + NONE => false + | SOME v => v andb CASE = cs + + val isUpper = isCase UPPER + val isLower = isCase LOWER + val isSpace = isCase WHITESPACE + + (* derived methods *) + fun isAscii c = c < 0w128 + + (* Both LETTER and NUMERAL have a 0 in bit 28 *) + fun isAlphaNum c = + case fetch c of + NONE => false + | SOME v => c andb CONTROL = 0w0 + + fun isPrint c = + case fetch c of + NONE => false (* complement of control, excludes non-unicode *) + | SOME v => v andb CLASS <> CONTROL + + (* printable, but not whitespace *) + fun isGraph c = + case fetch c of + NONE => false + | SOME v => v andb CLASS <> CONTROL andalso v andb CASE <> WHITESPACE + + fun isHexDigit c = false (* !!! damn !!! *) + + (* Use the delta tables to convert case + * We exploit the fact that a character cannot have both + * uppercase and lowercase mappings simultaneously. + *) + fun delta v = toInt (v >> DELTASHIFT andb DELTAMASK) + fun toLower c = + case fetch c of + NONE => c + | SOME v => c + Vector.sub (ldelta, delta v) + fun toUpper c = + case fetch c of + NONE => c + | SOME v => c + Vector.sub (udelta, delta v) + end + end Modified: mlton/branches/unicode/basis-library/text/string-cvt.sml =================================================================== --- mlton/trunk/basis-library/text/string-cvt.sml 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/branches/unicode/basis-library/text/string-cvt.sml 2005-11-24 00:51:12 UTC (rev 4250) @@ -6,9 +6,14 @@ * See the file MLton-LICENSE for details. *) +(* The String and Char structures are not yet available at this point. + * They need the StringCvt structure for their signatures. + * Therefore, we use CharVector methods. + *) structure StringCvt: STRING_CVT_EXTRA = struct open Reader + structure Char = Primitive.Char val wordFromInt = Primitive.Word32.fromInt @@ -31,25 +36,22 @@ open Primitive.Int - structure Char = Char0 - structure String = String0 - local fun pad f (c: char) i s = let - val n = String.size s + val n = CharVector.length s in if n >= i then s - else f (s, String0.vector (i -? n, c)) + else f (s, CharVector.vector (i -? n, c)) end in - val padLeft = pad (fn (s, pad) => String.^ (pad, s)) - val padRight = pad String.^ + val padLeft = pad (fn (s, pad) => CharVector.append (pad, s)) + val padRight = pad CharVector.append end fun splitl p f src = - let fun done chars = String0.implode (rev chars) + let fun done chars = CharVector.fromList (rev chars) fun loop (src, chars) = case f src of NONE => (done chars, src) @@ -63,14 +65,12 @@ fun takel p f s = #1 (splitl p f s) fun dropl p f s = #2 (splitl p f s) - fun skipWS x = dropl Char.isSpace x - type cs = int fun stringReader (s: string): (char, cs) reader = - fn i => if i >= String.size s + fn i => if i >= CharVector.length s then NONE - else SOME (String.sub (s, i), i + 1) + else SOME (CharVector.sub (s, i), i + 1) fun 'a scanString (f: ((char, cs) reader -> ('a, cs) reader)) (s: string) : 'a option = @@ -79,6 +79,24 @@ | SOME (a, _) => SOME a local + val numChars = 256 + fun memoize (f: char -> 'a): char -> 'a = + let val a = Array.tabulate (numChars, f o Char.chr) + in fn c => Array.sub (a, Char.ord c) + end + fun oneOf s = + let + val a = Array.array (numChars, false) + val n = CharVector.length s + fun loop i = + if Primitive.Int.>= (i, n) then () + else (Array.update (a, Char.ord (CharVector.sub (s, i)), true) + ; loop (i + 1)) + in loop 0 + ; fn c => Array.sub (a, Char.ord c) + end + val isSpace = oneOf " \t\r\n\v\f\u0085\u00A0" (* 85, A0 are latin spaces *) + fun range (add: int, cmin: char, cmax: char): char -> int option = let val min = Char.ord cmin in fn c => if Char.<= (cmin, c) andalso Char.<= (c, cmax) @@ -87,7 +105,7 @@ end fun 'a combine (ds: (char -> 'a option) list): char -> 'a option = - Char.memoize + memoize (fn c => let val rec loop = @@ -99,13 +117,14 @@ in loop ds end) - val bin = Char.memoize (range (0, #"0", #"1")) - val oct = Char.memoize (range (0, #"0", #"7")) - val dec = Char.memoize (range (0, #"0", #"9")) + val bin = memoize (range (0, #"0", #"1")) + val oct = memoize (range (0, #"0", #"7")) + val dec = memoize (range (0, #"0", #"9")) val hex = combine [range (0, #"0", #"9"), range (10, #"a", #"f"), range (10, #"A", #"F")] in + fun skipWS x = dropl isSpace x fun charToDigit (radix: radix): char -> int option = case radix of BIN => bin @@ -195,5 +214,5 @@ | SOME n => loop (n, state) end - fun digitToChar (n: int): char = String.sub ("0123456789ABCDEF", n) + fun digitToChar (n: int): char = CharVector.sub ("0123456789ABCDEF", n) end Copied: mlton/branches/unicode/basis-library/text/string.fun (from rev 4246, mlton/trunk/basis-library/text/string.sml) =================================================================== --- mlton/trunk/basis-li... [truncated message content] |
From: Stephen W. <sw...@ml...> - 2005-11-23 21:43:21
|
From: Matthew F. <fl...@ml...> - 2005-11-21 20:34:28
|
Constant GC field offset is named sourceMaps.curSourceSeqsIndex ---------------------------------------------------------------------- U mlton/branches/on-20050822-x86_64-branch/mlton/main/compile.fun ---------------------------------------------------------------------- Modified: mlton/branches/on-20050822-x86_64-branch/mlton/main/compile.fun =================================================================== --- mlton/branches/on-20050822-x86_64-branch/mlton/main/compile.fun 2005-11-22 03:02:45 UTC (rev 4248) +++ mlton/branches/on-20050822-x86_64-branch/mlton/main/compile.fun 2005-11-22 04:34:26 UTC (rev 4249) @@ -454,7 +454,7 @@ canHandle = get "atomicState", cardMap = get "generationalMaps.cardMapAbsolute", currentThread = get "currentThread", - curSourceSeqsIndex = get "curSourceSeqsIndex", + curSourceSeqsIndex = get "sourceMaps.curSourceSeqsIndex", exnStack = get "exnStack", frontier = get "frontier", limit = get "limit", |
From: Matthew F. <fl...@ml...> - 2005-11-21 19:03:44
|
Merge trunk revisions 4198:4247 into x86_64 branch ---------------------------------------------------------------------- U mlton/branches/on-20050822-x86_64-branch/Makefile U mlton/branches/on-20050822-x86_64-branch/basis-library/libs/basis-extra/top-level/basis.sig U mlton/branches/on-20050822-x86_64-branch/basis-library/mlton/proc-env.sig U mlton/branches/on-20050822-x86_64-branch/basis-library/mlton/proc-env.sml U mlton/branches/on-20050822-x86_64-branch/basis-library/posix/primitive.sml U mlton/branches/on-20050822-x86_64-branch/bin/grab-wiki U mlton/branches/on-20050822-x86_64-branch/bin/make-pdf-guide U mlton/branches/on-20050822-x86_64-branch/doc/README U mlton/branches/on-20050822-x86_64-branch/doc/changelog _U mlton/branches/on-20050822-x86_64-branch/doc/guide/ 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 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 U mlton/branches/on-20050822-x86_64-branch/doc/guide/CKitLibrary 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 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/EXene 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 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 U mlton/branches/on-20050822-x86_64-branch/doc/guide/Flatten 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/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 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 U mlton/branches/on-20050822-x86_64-branch/doc/guide/MLj 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 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/Papers 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 A mlton/branches/on-20050822-x86_64-branch/doc/guide/Poplog 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 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 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 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 U mlton/branches/on-20050822-x86_64-branch/doc/guide/StandardML U mlton/branches/on-20050822-x86_64-branch/doc/guide/StandardMLBooks 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 A 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 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/UserGuide U mlton/branches/on-20050822-x86_64-branch/doc/guide/Users U mlton/branches/on-20050822-x86_64-branch/doc/guide/ValueRestriction 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 A 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 A mlton/branches/on-20050822-x86_64-branch/doc/guide/moin-news.png U mlton/branches/on-20050822-x86_64-branch/include/c-chunk.h U mlton/branches/on-20050822-x86_64-branch/lib/ckit-lib/Makefile U mlton/branches/on-20050822-x86_64-branch/lib/ckit-lib/ckit.patch U mlton/branches/on-20050822-x86_64-branch/lib/ckit-lib/ckit.tgz U mlton/branches/on-20050822-x86_64-branch/lib/smlnj-lib/Makefile U mlton/branches/on-20050822-x86_64-branch/lib/smlnj-lib/smlnj-lib.patch U mlton/branches/on-20050822-x86_64-branch/lib/smlnj-lib/smlnj-lib.tgz U mlton/branches/on-20050822-x86_64-branch/mlton/backend/backend.fun U mlton/branches/on-20050822-x86_64-branch/mlton/backend/machine.fun U mlton/branches/on-20050822-x86_64-branch/mlton/backend/profile.fun U mlton/branches/on-20050822-x86_64-branch/mlton/backend/rep-type.fun U mlton/branches/on-20050822-x86_64-branch/mlton/backend/runtime.fun U mlton/branches/on-20050822-x86_64-branch/mlton/backend/runtime.sig U mlton/branches/on-20050822-x86_64-branch/mlton/codegen/c-codegen/c-codegen.fun U mlton/branches/on-20050822-x86_64-branch/mlton/control/control-flags.sig U mlton/branches/on-20050822-x86_64-branch/mlton/control/control-flags.sml U mlton/branches/on-20050822-x86_64-branch/mlton/elaborate/elaborate-mlbs.fun U mlton/branches/on-20050822-x86_64-branch/mlton/main/compile.fun U mlton/branches/on-20050822-x86_64-branch/mlton/main/lookup-constant.fun U mlton/branches/on-20050822-x86_64-branch/mlton/main/main.fun U mlton/branches/on-20050822-x86_64-branch/package/debian/control U mlton/branches/on-20050822-x86_64-branch/runtime/Posix/ProcEnv/setgroups.c U mlton/branches/on-20050822-x86_64-branch/runtime/gc/profiling.c U mlton/branches/on-20050822-x86_64-branch/runtime/gc/profiling.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/sources.h U mlton/branches/on-20050822-x86_64-branch/util/cm2mlb/cm2mlb-map U mlton/branches/on-20050822-x86_64-branch/util/cm2mlb/cm2mlb.sml ---------------------------------------------------------------------- Modified: mlton/branches/on-20050822-x86_64-branch/Makefile =================================================================== --- mlton/branches/on-20050822-x86_64-branch/Makefile 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/Makefile 2005-11-22 03:02:45 UTC (rev 4248) @@ -150,6 +150,9 @@ docs: dirs $(MAKE) -C $(LEX) docs $(MAKE) -C $(YACC) docs + if htmldoc --version >/dev/null 2>&1; then \ + bin/make-pdf-guide; \ + fi BSDSRC = /tmp/mlton-$(VERSION) .PHONY: freebsd @@ -420,6 +423,7 @@ cd $(SRC)/doc && \ $(CP) changelog examples guide license README $(TDOC)/ \ ) + mv $(TDOC)/guide/mlton-guide.pdf $(TDOC)/ ( \ cd $(SRC)/util && \ $(CP) cmcat cm2mlb $(TDOC)/ \ Modified: mlton/branches/on-20050822-x86_64-branch/basis-library/libs/basis-extra/top-level/basis.sig =================================================================== --- mlton/branches/on-20050822-x86_64-branch/basis-library/libs/basis-extra/top-level/basis.sig 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/basis-library/libs/basis-extra/top-level/basis.sig 2005-11-22 03:02:45 UTC (rev 4248) @@ -319,6 +319,7 @@ sharing type MLton.IntInf.t = IntInf.int sharing type MLton.Process.pid = Posix.Process.pid + sharing type MLton.ProcEnv.gid = Posix.ProcEnv.gid sharing type MLton.Signal.t = Posix.Signal.signal sharing type MLton.Word.t = Word.word sharing type MLton.Word8.t = Word8.word Modified: mlton/branches/on-20050822-x86_64-branch/basis-library/mlton/proc-env.sig =================================================================== --- mlton/branches/on-20050822-x86_64-branch/basis-library/mlton/proc-env.sig 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/basis-library/mlton/proc-env.sig 2005-11-22 03:02:45 UTC (rev 4248) @@ -8,6 +8,8 @@ signature MLTON_PROC_ENV = sig + type gid + val setenv: {name: string, value: string} -> unit - val setgroups: Posix.ProcEnv.gid list -> unit + val setgroups: gid list -> unit end Modified: mlton/branches/on-20050822-x86_64-branch/basis-library/mlton/proc-env.sml =================================================================== --- mlton/branches/on-20050822-x86_64-branch/basis-library/mlton/proc-env.sml 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/basis-library/mlton/proc-env.sml 2005-11-22 03:02:45 UTC (rev 4248) @@ -8,6 +8,8 @@ structure MLtonProcEnv: MLTON_PROC_ENV = struct + type gid = PosixPrimitive.ProcEnv.gid + fun setenv {name, value} = let val name = NullString.nullTerm name Modified: mlton/branches/on-20050822-x86_64-branch/basis-library/posix/primitive.sml =================================================================== --- mlton/branches/on-20050822-x86_64-branch/basis-library/posix/primitive.sml 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/basis-library/posix/primitive.sml 2005-11-22 03:02:45 UTC (rev 4248) @@ -269,7 +269,7 @@ val setenv = _import "Posix_ProcEnv_setenv": NullString.t * NullString.t -> int; val setgid = _import "Posix_ProcEnv_setgid": gid -> int; - val setgroups = _import "Posix_ProcEnv_getgroups": gid array -> int; + val setgroups = _import "Posix_ProcEnv_setgroups": gid array -> int; val setpgid = _import "Posix_ProcEnv_setpgid": Pid.t * Pid.t -> int; val setsid = _import "Posix_ProcEnv_setsid": unit -> Pid.t; val setuid = _import "Posix_ProcEnv_setuid": uid -> int; Modified: mlton/branches/on-20050822-x86_64-branch/bin/grab-wiki =================================================================== --- mlton/branches/on-20050822-x86_64-branch/bin/grab-wiki 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/bin/grab-wiki 2005-11-22 03:02:45 UTC (rev 4248) @@ -26,11 +26,11 @@ TIMEFORMAT=' Took %lR.' base='http://mlton.org' -version=`date +%Y%m%d` - index='.index' script='.script' tmp='.tmp' +useLocal='false' +version=`date +%Y%m%d` cd "$src/doc/guide" @@ -38,7 +38,9 @@ drop='\(Download\|.*MoinEditorBackup\|OldPages\|Preferences\|RecentChanges\|TemporaryBugExamples\|TemporaryUpload\|WikiSandBox\)' -#if true; then (cd $HOME/mlton/guide-in && tar.write .) | tar.read; else +if $useLocal; then + (cd $HOME/mlton/guide-in && tar.write .) | tar.read; +else echo "Getting index:" lynx -dump "$base/Index?action=titleindex" | \ grep -v >$index -e '^$' -e "^$drop$" @@ -55,7 +57,7 @@ for f in bottom email ftp news top www; do wget -c $base/wiki/mlton/img/moin-$f.png done -#fi +fi echo "Fixing pages:" @@ -80,6 +82,8 @@ s;<link[^>]* href *= *"[^"]*?action[^"]*">;;g # Add version stamp in upper left. s;<a class = mltona\(.*\)>MLton</a>;<a class = mltona\1>MLton $version</a>; +# Replace ViewSVN references to trunk with references to release tag. +s;\(<a href = \"http://mlton.org/cgi-bin/viewsvn\.cgi.*/mlton/\)trunk\([^>]*\)>;\1tags/on-$version-release\2>;g # Fix wiki hrefs and srcs s; \(href\|src\) *= *"\(/pages/[^"]*\)"; \1="$base\2";g s; \(href\|src\) *= *"/\([^"]\+\)"; \1="\2";g Modified: mlton/branches/on-20050822-x86_64-branch/bin/make-pdf-guide =================================================================== --- mlton/branches/on-20050822-x86_64-branch/bin/make-pdf-guide 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/bin/make-pdf-guide 2005-11-22 03:02:45 UTC (rev 4248) @@ -1,7 +1,6 @@ #!/bin/sh set -e -set -x name=`basename $0` dir=`dirname $0` @@ -24,10 +23,114 @@ ;; esac -tmp='/tmp/guide' +book='mlton.book' +pages='.pages' +pdf='mlton-guide.pdf' +script='.script' +titlepage='title.html' +tmp='/tmp/mlton-guide' +version=`date +%Y%m%d` + rm -rf $tmp mkdir $tmp +cd $tmp -( cd $src/doc/guide && tar -cf - . ) | ( cd $tmp && tar -xf - ) -yes | time html2ps -DHnRtTU -C fb -W bL http://localhost/guide/ >guide.ps 2>/tmp/z.log -ps2pdf guide.ps +( cd $src/doc/guide && tar -cf - . ) | tar -xf - + +# The grep -v takes out files that aren't wiki pages. +ls -1 | grep -v '\.' >$pages + +echo 'Massaging HTML.' + +for f in `cat $pages`; do +cat >$script <<EOF +/^<table bgcolor = lightblue/,+29d +s;\(<body .*\);\1\n<h1>$f</h1>; +s;<FONT[^>]*>;;g +s;</FONT>;;g +s;\(<div id="content"\);\1; +s;<td colspan = 3;<td align = right; +s;<img src=\"\(http://mlton.org[^>]*\)>;<img src="moin-www.png"><a href=\"\1>image</a>;g +EOF + sed -f $script <$f >.tmp + mv .tmp $f +done + +echo 'Generating PDF titlepage.' +cat >$titlepage <<EOF +<html> +<head><title>MLton Guide ($version)</title></head> +<body> +<h1>MLton Guide</h1> +<p> +This is the guide for MLton, an open-source, whole-program, +optimizing Standard ML compiler. +</p> + +<p> +This guide was generated automatically from the MLton wiki, +available online at <a href="http://mlton.org/">http://mlton.org</a>. +It is up to date for MLton $version. +</p> + +</body> +</html> +EOF + +echo 'Generating htmldoc script.' +( +cat <<EOF +#HTMLDOC 1.8.24 Open Source +-f $pdf +-t pdf13 +--bodyfont times +--bottom 0.50in +--browserwidth 680 +--charset iso-8859-1 +--color +--compression=9 +--effectduration 1.0 +--embedfonts +--firstpage p1 +--fontsize 11.0 +--fontspacing 1.2 +--footer ..1 +--header t.c +--headfootfont Helvetica +--headfootsize 11.0 +--headingfont Helvetica +--jpeg=0 +--left 1.00in +--links +--linkstyle underline +--no-encryption +--no-pscommands +--no-strict +--no-xrxcomments +--nup 1 +--pageduration 10 +--pageeffect none +--pagelayout single +--pagemode document +--portrait +--right 0.50in +--size Universal +--title +--top 0.50in +--webpage +$titlepage +Home +Index +EOF + +grep -v '^\(Home\|Index\)$' $pages +) >$book + +echo 'Running htmldoc.' +htmldoc --batch $book + +mv $pdf $src/doc/guide + +cd + +rm -rf $tmp Modified: mlton/branches/on-20050822-x86_64-branch/doc/README =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/README 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/README 2005-11-22 03:02:45 UTC (rev 4248) @@ -2,8 +2,9 @@ programming language. MLton has the following features. + Runs on a variety of platforms. + o HPPA: Debian o PowerPC: Debian, Mac OSX - o X86: Linux, Cygwin/Windows, FreeBSD, NetBSD, OpenBSD + o X86: Linux, Cygwin/Windows, FreeBSD, MinGW/Windows, NetBSD, OpenBSD o Sparc: Debian, Solaris. + Generates standalone executables with excellent running times. + Supports the full SML 97 language. @@ -24,19 +25,22 @@ For more information, go to the MLton home page. - http://www.mlton.org/ + http://mlton.org/ -For general MLton discussion, send mail to MLt...@ml.... To -send mail to the MLton developers, use ML...@ml.... +There are two mailing lists available. + * ML...@ml... MLton developers + * MLt...@ml... MLton user community + doc directory contents: README this file changelog changelog cm2mlb/ a utility for producing ML Basis programs in SML/NJ cmcat/ a utility for producing whole programs in SML/NJ examples/ example SML programs - guide/ MLton guide + guide/ HTML MLton guide (copy of the MLton wiki) license/ license information mllex.ps.gz user guide for mllex lexer generator + mlton-guide.pdf PDF version of MLton guide mlyacc.ps.gz user guide for mlyacc parser generator Modified: mlton/branches/on-20050822-x86_64-branch/doc/changelog =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/changelog 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/changelog 2005-11-22 03:02:45 UTC (rev 4248) @@ -1,5 +1,16 @@ Here are the changes since version 20041109. +* 2005-11-19 + - Updated SML/NJ Library and CKit Library from SML/NJ 110.57. + +* 2005-11-15 + - Fixed a bug in MLton.ProcEnv.setgroups. + +* 2005-11-11 + - Fixed a bug in the interleaving of lexing/parsing and elaborating of + ML Basis files, which would raise an unhandled Force exception on + cyclic basis references. Thanks to John Dias for the bug report. + * 2005-11-10 - Fixed two bugs in Time.scan. One would raise Time on a string with a large fractional component. Thanks to Carsten Varming for the bug Property changes on: mlton/branches/on-20050822-x86_64-branch/doc/guide ___________________________________________________________________ Name: svn:ignore + mlton-guide.pdf Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/AST =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/AST 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/AST 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; @@ -55,22 +55,22 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</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-20051115-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/trunk/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-20051115-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-20051115-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/trunk/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-20051115-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-20051115-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/trunk/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-20051115-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/trunk/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-20051115-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 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/AccessControl 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</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 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/AdmitsEquality 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/Alice =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/Alice 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/Alice 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</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 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/AllocateRegisters 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ZZZ.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ZZZ.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-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/trunk/mlton/ZZZ.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ZZZ.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-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> @@ -65,5 +65,5 @@ <p> <hr> -Last edited on 2005-08-19 15:43:18 by <span title="cfs32.cs.cornell.edu"><a href="MatthewFluet">MatthewFluet</a></span>. +Last edited on 2005-11-14 23:11:30 by <span title="fox.cs.cornell.edu"><a href="MatthewFluet">MatthewFluet</a></span>. </body></html> Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/AndreiFormiga =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/AndreiFormiga 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/AndreiFormiga 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/BasisLibrary =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/BasisLibrary 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/BasisLibrary 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; @@ -49,7 +49,7 @@ </table> <div id="content" lang="en" dir="ltr"> -The <a href="StandardML">Standard ML</a> Basis Library is a collection of modules dealing with basic types, input/output, OS interfaces, and simple datatypes. It is intended as a portable library usable across all implementations of SML. The official online version of the Basis Library specification is at <a href="http://www.standardml.org/Basis/">http://www.standardml.org/Basis/</a>. We keep a copy at <a href="http://mlton.org/basis/"><img src="moin-www.png" alt="[WWW]" height="11" width="11">http://mlton.org/basis/</a>. There is a <a href = "References#GansnerReppy04"> book</a> that includes all of the online version and more. For a reverse chronological list of changes to the specification, see <a href="http://www.standardml.org/Basis/history.html">http://www.standardml.org/Basis/history.html</a>. <p> +The <a href="StandardML">Standard ML</a> Basis Library is a collection of modules dealing with basic types, input/output, OS interfaces, and simple datatypes. It is intended as a portable library usable across all implementations of SML. The official online version of the Basis Library specification is at <a class="external" href="http://www.standardml.org/Basis/"><img src="moin-www.png" alt="[WWW]" height="11" width="11">http://www.standardml.org/Basis/</a>. We keep a copy at <a class="external" href="http://mlton.org/basis/"><img src="moin-www.png" alt="[WWW]" height="11" width="11">http://mlton.org/basis/</a>. There is a <a href = "References#GansnerReppy04"> book</a> that includes all of the online version and more. For a reverse chronological list of changes to the specification, see <a class="external" href="http://www.standardml.org/Basis/history.html"><img src="moin-www.png" alt="[WWW]" height="11" width="11">http://www.standardml.org/Basis/history.html</a>. <p> MLton implements all of the required portions of the Basis Library. MLton also implements many of the optional structures. You can obtain a complete and current list of what's available using <tt>mlton -show-basis</tt> (see <a href="ShowBasis">ShowBasis</a>). By default, MLton makes the Basis Library available to user programs. You can also <a href="MLBasisAvailableLibraries">access the Basis Library</a> from <a href="MLBasis"> ML Basis</a> files. </p> <p> @@ -425,5 +425,5 @@ <p> <hr> -Last edited on 2005-01-28 21:49:35 by <span title="cfs36.cs.cornell.edu"><a href="MatthewFluet">MatthewFluet</a></span>. +Last edited on 2005-09-06 23:28:14 by <span title="cfs34.cs.cornell.edu"><a href="MatthewFluet">MatthewFluet</a></span>. </body></html> Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/Bug =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/Bug 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/Bug 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; @@ -49,7 +49,7 @@ </table> <div id="content" lang="en" dir="ltr"> -To report a bug, please send mail to <a class="external" href="mailto:ML...@ml..."><img src="moin-email.png" alt="[MAILTO]" height="10" width="14">ML...@ml...</a>. Please include the complete SML program that caused the problem and a log of a compile of the program with <tt>-verbose 2</tt>. For large messages (over 512K), please send an email containing the discussion text and a link to any large files. You may use our <a href="http://mlton.org/TemporaryUpload"><img src="moin-www.png" alt="[WWW]" height="11" width="11">TemporaryUpload</a> page for uploading large files. <p> +To report a bug, please send mail to <a class="external" href="mailto:ML...@ml..."><img src="moin-email.png" alt="[MAILTO]" height="10" width="14">mailto:ML...@ml...</a>. Please include the complete SML program that caused the problem and a log of a compile of the program with <tt>-verbose 2</tt>. For large messages (over 512K), please send an email containing the discussion text and a link to any large files. You may use our <a href="http://mlton.org/TemporaryUpload"><img src="moin-www.png" alt="[WWW]" height="11" width="11">TemporaryUpload</a> page for uploading large files. <p> There are some <a href="UnresolvedBugs">UnresolvedBugs</a> that we don't plan to fix. </p> <p> @@ -71,5 +71,5 @@ <p> <hr> -Last edited on 2005-08-31 23:32:42 by <span title="adsl-64-166-226-67.dsl.snfc21.pacbell.net"><a href="StephenWeeks">StephenWeeks</a></span>. +Last edited on 2005-09-06 23:18:45 by <span title="cfs34.cs.cornell.edu"><a href="MatthewFluet">MatthewFluet</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 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/Bugs20041109 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/CKitLibrary =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/CKitLibrary 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/CKitLibrary 2005-11-22 03:02:45 UTC (rev 4248) @@ -27,7 +27,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; @@ -167,7 +167,7 @@ <li> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/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-20051115-release/lib/ckit-lib/ckit.patch?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ckit.patch</a> </p> </li> Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/CallGraph =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/CallGraph 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/CallGraph 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</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 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromCToSML 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; @@ -176,7 +176,9 @@ <p> Compile <tt>ffi-export.c</tt> and <tt>export.sml</tt>. <pre>% gcc -c ffi-export.c -% mlton -default-ann 'allowExport true' -default-ann 'allowImport true' export.sml ffi-export.o +% mlton -default-ann 'allowExport true' \ + -default-ann 'allowImport true' \ + export.sml ffi-export.o </pre> </p> <p> @@ -195,14 +197,14 @@ <li> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/trunk/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-20051115-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/trunk/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-20051115-release/doc/examples/ffi/ffi-export.c"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ffi-export.c</a> </p> </li> @@ -214,5 +216,5 @@ <p> <hr> -Last edited on 2005-08-09 07:31:39 by <span title="pool-71-243-2-249.bos.east.verizon.net"><a href="MatthewFluet">MatthewFluet</a></span>. +Last edited on 2005-11-13 23:08:49 by <span title="pool-68-162-172-153.pitt.east.verizon.net">AdamGoode</span>. </body></html> Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromSMLToC =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromSMLToC 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromSMLToC 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; @@ -134,14 +134,14 @@ <li> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/trunk/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-20051115-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/trunk/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-20051115-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/CallingFromSMLToCFunctionPointer 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/CallingFromSMLToCFunctionPointer 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; @@ -210,7 +210,7 @@ <li> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/trunk/doc/examples/ffi/iimport.sml"><img src="moin-www.png" alt="[WWW]" height="11" width="11">iimport.sml</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/tags/on-20051115-release/doc/examples/ffi/iimport.sml"><img src="moin-www.png" alt="[WWW]" height="11" width="11">iimport.sml</a> </p> </li> Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/ChrisClearwater =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/ChrisClearwater 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/ChrisClearwater 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/Chunkify =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/Chunkify 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/Chunkify 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/chunkify.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">chunkify.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/backend/chunkify.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">chunkify.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/chunkify.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">chunkify.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/backend/chunkify.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">chunkify.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> Breaking large <a href="RSSA">RSSA</a> functions into chunks is necessary for reasonable <tt>gcc</tt> compile times with the <a class="nonexistent" href="CCodegen">CCodegen</a>. Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/Closure =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/Closure 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/Closure 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/ClosureConvert =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/ClosureConvert 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/ClosureConvert 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; @@ -61,9 +61,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/closure-convert/closure-convert.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">closure-convert.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/closure-convert/closure-convert.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">closure-convert.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/closure-convert/closure-convert.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">closure-convert.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/closure-convert/closure-convert.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">closure-convert.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> </div> Modified: mlton/branches/on-20050822-x86_64-branch/doc/guide/CommonArg =================================================================== --- mlton/branches/on-20050822-x86_64-branch/doc/guide/CommonArg 2005-11-21 16:53:30 UTC (rev 4247) +++ mlton/branches/on-20050822-x86_64-branch/doc/guide/CommonArg 2005-11-22 03:02:45 UTC (rev 4248) @@ -25,7 +25,7 @@ color: darkblue; font-size: 150%; text-align: left;"> - <a class = mltona href="Home">MLton 20050905</a> + <a class = mltona href="Home">MLton 20051115</a> <td style = " border: 0px; font-size: 150%; @@ -82,9 +82,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/common-arg.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-arg.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/common-arg.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-arg.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/common-arg.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-arg.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/common-arg.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-arg.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> Three analyses were originally proposed to drive the optimization transformation. Only the <em>Dominator Analysis</em> is currently implemented. (Implementations of the other analyses are available in the Subversion repository.) @@ -209,7 +209,8 @@ <pre>nodes(G) = {Root} U Var.t edges(G) = {Root -> v | v bound in a Statement.t or in the Function.t args} U - {xi -> ai | L(x1, ..., xn) transfer where (a1, ..., an) are the formals of L} U + {xi -> ai | L(x1, ..., xn) transfer where (a1, ..., an) + are the formals of L} U {Root -> a | a is a block argument used in an unknown context} </pre> </ul> @@ -254,5 +255,5 @@ <p> <hr> -Last edited on 2005-08-19 15:42:33 by <span title="cfs32.cs.cornell.edu"><a href="MatthewFluet">MatthewFluet</a></span>. +Last edited on 2005-11-13 23:14:11 by <span title="pool-68-162-172-153.pitt.east.verizon.net">AdamGoode</span>. </body></html> Modified: mlton/branches/on-20050822-x86_64-branch/... [truncated message content] |
From: Matthew F. <fl...@ml...> - 2005-11-21 08:53:36
|
Rebuild with fixed SML/NJ 110.57 installation ---------------------------------------------------------------------- U mlton/trunk/lib/ckit-lib/ckit.patch U mlton/trunk/lib/ckit-lib/ckit.tgz U mlton/trunk/lib/smlnj-lib/smlnj-lib.patch U mlton/trunk/lib/smlnj-lib/smlnj-lib.tgz ---------------------------------------------------------------------- Modified: mlton/trunk/lib/ckit-lib/ckit.patch =================================================================== --- mlton/trunk/lib/ckit-lib/ckit.patch 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/trunk/lib/ckit-lib/ckit.patch 2005-11-21 16:53:30 UTC (rev 4247) @@ -393,7 +393,7 @@ ) diff -Naur ckit/src/ckit-lib.mlb ckit-mlton/src/ckit-lib.mlb --- ckit/src/ckit-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ ckit-mlton/src/ckit-lib.mlb 2005-11-19 14:44:19.000000000 -0500 ++++ ckit-mlton/src/ckit-lib.mlb 2005-11-21 11:29:39.000000000 -0500 @@ -0,0 +1,876 @@ + +ann @@ -1272,8 +1272,8 @@ + +end diff -Naur ckit/src/parser/grammar/c.grm.sml ckit-mlton/src/parser/grammar/c.grm.sml ---- ckit/src/parser/grammar/c.grm.sml 2005-11-19 14:44:17.000000000 -0500 -+++ ckit-mlton/src/parser/grammar/c.grm.sml 2005-11-19 14:44:17.000000000 -0500 +--- ckit/src/parser/grammar/c.grm.sml 2005-11-21 11:29:22.000000000 -0500 ++++ ckit-mlton/src/parser/grammar/c.grm.sml 2005-11-21 11:29:23.000000000 -0500 @@ -1866,10 +1866,11 @@ (T 5) $$ (T 4) $$ (T 3) $$ (T 2) $$ (T 1) $$ (T 0)end structure Actions = @@ -1288,8 +1288,8 @@ case (i392,stack) of ( 0, ( ( _, ( MlyValue.tu tu, tu1left, tu1right)) :: rest671)) => diff -Naur ckit/src/parser/grammar/c.lex.sml ckit-mlton/src/parser/grammar/c.lex.sml ---- ckit/src/parser/grammar/c.lex.sml 2005-11-19 14:44:17.000000000 -0500 -+++ ckit-mlton/src/parser/grammar/c.lex.sml 2005-11-19 14:44:17.000000000 -0500 +--- ckit/src/parser/grammar/c.lex.sml 2005-11-21 11:29:21.000000000 -0500 ++++ ckit-mlton/src/parser/grammar/c.lex.sml 2005-11-21 11:29:21.000000000 -0500 @@ -1,3 +1,4 @@ +type int = Int.int functor CLexFun(structure Tokens : C_TOKENS Modified: mlton/trunk/lib/ckit-lib/ckit.tgz =================================================================== (Binary files differ) Modified: mlton/trunk/lib/smlnj-lib/smlnj-lib.patch =================================================================== --- mlton/trunk/lib/smlnj-lib/smlnj-lib.patch 2005-11-19 20:10:35 UTC (rev 4246) +++ mlton/trunk/lib/smlnj-lib/smlnj-lib.patch 2005-11-21 16:53:30 UTC (rev 4247) @@ -1,6 +1,6 @@ diff -Naur smlnj-lib/Controls/controls-lib.mlb smlnj-lib-mlton/Controls/controls-lib.mlb --- smlnj-lib/Controls/controls-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/Controls/controls-lib.mlb 2005-11-19 14:44:42.000000000 -0500 ++++ smlnj-lib-mlton/Controls/controls-lib.mlb 2005-11-21 11:37:31.000000000 -0500 @@ -0,0 +1,170 @@ + +ann @@ -174,7 +174,7 @@ +end diff -Naur smlnj-lib/HashCons/hash-cons-lib.mlb smlnj-lib-mlton/HashCons/hash-cons-lib.mlb --- smlnj-lib/HashCons/hash-cons-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/HashCons/hash-cons-lib.mlb 2005-11-19 14:44:42.000000000 -0500 ++++ smlnj-lib-mlton/HashCons/hash-cons-lib.mlb 2005-11-21 11:37:34.000000000 -0500 @@ -0,0 +1,144 @@ + +ann @@ -447,8 +447,8 @@ in case SS.getc ss diff -Naur smlnj-lib/HTML/html-gram.sml smlnj-lib-mlton/HTML/html-gram.sml ---- smlnj-lib/HTML/html-gram.sml 2005-11-19 14:44:41.000000000 -0500 -+++ smlnj-lib-mlton/HTML/html-gram.sml 2005-11-19 14:44:41.000000000 -0500 +--- smlnj-lib/HTML/html-gram.sml 2005-11-21 11:37:24.000000000 -0500 ++++ smlnj-lib-mlton/HTML/html-gram.sml 2005-11-21 11:37:24.000000000 -0500 @@ -1226,10 +1226,11 @@ (T 3) $$ (T 2) $$ (T 0)end structure Actions = @@ -463,8 +463,8 @@ case (i392,stack) of ( 0, ( ( _, ( _, _, EndHTML1right)) :: ( _, ( MlyValue.Body Body, diff -Naur smlnj-lib/HTML/html-lex.sml smlnj-lib-mlton/HTML/html-lex.sml ---- smlnj-lib/HTML/html-lex.sml 2005-11-19 14:44:41.000000000 -0500 -+++ smlnj-lib-mlton/HTML/html-lex.sml 2005-11-19 14:44:41.000000000 -0500 +--- smlnj-lib/HTML/html-lex.sml 2005-11-21 11:37:24.000000000 -0500 ++++ smlnj-lib-mlton/HTML/html-lex.sml 2005-11-21 11:37:24.000000000 -0500 @@ -1,3 +1,4 @@ +type int = Int.int functor HTMLLexFn ( @@ -562,7 +562,7 @@ in scan(!yybegin (* start *),nil,!yybufpos,!yybufpos) diff -Naur smlnj-lib/HTML/html-lib.mlb smlnj-lib-mlton/HTML/html-lib.mlb --- smlnj-lib/HTML/html-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/HTML/html-lib.mlb 2005-11-19 14:44:42.000000000 -0500 ++++ smlnj-lib-mlton/HTML/html-lib.mlb 2005-11-21 11:37:38.000000000 -0500 @@ -0,0 +1,300 @@ + +ann @@ -866,7 +866,7 @@ +end diff -Naur smlnj-lib/INet/inet-lib.mlb smlnj-lib-mlton/INet/inet-lib.mlb --- smlnj-lib/INet/inet-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/INet/inet-lib.mlb 2005-11-19 14:44:43.000000000 -0500 ++++ smlnj-lib-mlton/INet/inet-lib.mlb 2005-11-21 11:37:42.000000000 -0500 @@ -0,0 +1,144 @@ + +ann @@ -1014,7 +1014,7 @@ +end diff -Naur smlnj-lib/PP/pp-lib.mlb smlnj-lib-mlton/PP/pp-lib.mlb --- smlnj-lib/PP/pp-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/PP/pp-lib.mlb 2005-11-19 14:44:43.000000000 -0500 ++++ smlnj-lib-mlton/PP/pp-lib.mlb 2005-11-21 11:37:43.000000000 -0500 @@ -0,0 +1,212 @@ + +ann @@ -1230,7 +1230,7 @@ +end diff -Naur smlnj-lib/Reactive/reactive-lib.mlb smlnj-lib-mlton/Reactive/reactive-lib.mlb --- smlnj-lib/Reactive/reactive-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/Reactive/reactive-lib.mlb 2005-11-19 14:44:43.000000000 -0500 ++++ smlnj-lib-mlton/Reactive/reactive-lib.mlb 2005-11-21 11:37:43.000000000 -0500 @@ -0,0 +1,70 @@ + +ann @@ -1323,7 +1323,7 @@ + * {{{HTML/html-attrs-fn.sml}}} (modified): Rewrote use of ''or-patterns''. diff -Naur smlnj-lib/RegExp/regexp-lib.mlb smlnj-lib-mlton/RegExp/regexp-lib.mlb --- smlnj-lib/RegExp/regexp-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/RegExp/regexp-lib.mlb 2005-11-19 14:44:43.000000000 -0500 ++++ smlnj-lib-mlton/RegExp/regexp-lib.mlb 2005-11-21 11:37:44.000000000 -0500 @@ -0,0 +1,214 @@ + +ann @@ -1558,7 +1558,7 @@ +end diff -Naur smlnj-lib/Unix/unix-lib.mlb smlnj-lib-mlton/Unix/unix-lib.mlb --- smlnj-lib/Unix/unix-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/Unix/unix-lib.mlb 2005-11-19 14:44:44.000000000 -0500 ++++ smlnj-lib-mlton/Unix/unix-lib.mlb 2005-11-21 11:37:44.000000000 -0500 @@ -0,0 +1,45 @@ + +ann @@ -1760,7 +1760,7 @@ structure Key = K diff -Naur smlnj-lib/Util/smlnj-lib.mlb smlnj-lib-mlton/Util/smlnj-lib.mlb --- smlnj-lib/Util/smlnj-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/Util/smlnj-lib.mlb 2005-11-19 14:44:46.000000000 -0500 ++++ smlnj-lib-mlton/Util/smlnj-lib.mlb 2005-11-21 11:38:02.000000000 -0500 @@ -0,0 +1,1099 @@ + +ann Modified: mlton/trunk/lib/smlnj-lib/smlnj-lib.tgz =================================================================== (Binary files differ) |
From: Matthew F. <fl...@ml...> - 2005-11-19 12:10:43
|
Put lex/yacc derived files in .tgz ---------------------------------------------------------------------- U mlton/trunk/lib/ckit-lib/ckit.patch U mlton/trunk/lib/ckit-lib/ckit.tgz U mlton/trunk/lib/smlnj-lib/smlnj-lib.patch U mlton/trunk/lib/smlnj-lib/smlnj-lib.tgz ---------------------------------------------------------------------- Modified: mlton/trunk/lib/ckit-lib/ckit.patch =================================================================== --- mlton/trunk/lib/ckit-lib/ckit.patch 2005-11-19 19:46:26 UTC (rev 4245) +++ mlton/trunk/lib/ckit-lib/ckit.patch 2005-11-19 20:10:35 UTC (rev 4246) @@ -393,7 +393,7 @@ ) diff -Naur ckit/src/ckit-lib.mlb ckit-mlton/src/ckit-lib.mlb --- ckit/src/ckit-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ ckit-mlton/src/ckit-lib.mlb 2005-11-19 13:53:37.000000000 -0500 ++++ ckit-mlton/src/ckit-lib.mlb 2005-11-19 14:44:19.000000000 -0500 @@ -0,0 +1,876 @@ + +ann @@ -1271,15043 +1271,117 @@ +end + +end -diff -Naur ckit/src/parser/grammar/c.grm.desc ckit-mlton/src/parser/grammar/c.grm.desc ---- ckit/src/parser/grammar/c.grm.desc 1969-12-31 19:00:00.000000000 -0500 -+++ ckit-mlton/src/parser/grammar/c.grm.desc 2005-11-19 13:53:36.000000000 -0500 -@@ -0,0 +1,10001 @@ -+1 shift/reduce conflict -+ -+error: state 404: shift/reduce conflict (shift ELSE, reduce by rule 18) -+ -+state 0: -+ -+ translationUnit : . tu -+ -+ -+ translationUnit goto 420 -+ tu goto 1 -+ -+ . reduce by rule 1 -+ -+ -+state 1: -+ -+ translationUnit : tu . (reduce by rule 0) -+ tu : tu . externalDeclaration -+ -+ SEMICOLON shift 42 -+ LPAREN shift 41 -+ TIMES shift 40 -+ ID shift 39 -+ EXTERN shift 38 -+ AUTO shift 37 -+ STATIC shift 36 -+ REGISTER shift 35 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPEDEF shift 20 -+ TYPE_NAME shift 19 -+ -+ pointer goto 18 -+ notypeDeclarator goto 17 -+ notypeDirectDeclarator goto 16 -+ declarationSpecifiers goto 15 -+ declarationModifiers goto 14 -+ storageClassSpecifier goto 13 -+ typeSpecifier goto 12 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 10 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ fDefDeclaration goto 7 -+ functionDefinition goto 6 -+ declaration goto 5 -+ declaration1 goto 4 -+ externalDeclaration goto 3 -+ structOrUnion goto 2 -+ -+ . reduce by rule 0 -+ -+ -+state 2: -+ -+ structOrUnionSpecifier : structOrUnion . LCURLY structDeclarationList RCURLY -+ structOrUnionSpecifier : structOrUnion . ID LCURLY structDeclarationList RCURLY -+ structOrUnionSpecifier : structOrUnion . TYPE_NAME LCURLY structDeclarationList RCURLY -+ structOrUnionSpecifier : structOrUnion . ID -+ structOrUnionSpecifier : structOrUnion . TYPE_NAME -+ -+ LCURLY shift 45 -+ ID shift 44 -+ TYPE_NAME shift 43 -+ -+ -+ . error -+ -+ -+state 3: -+ -+ tu : tu externalDeclaration . (reduce by rule 2) -+ -+ -+ -+ . reduce by rule 2 -+ -+ -+state 4: -+ -+ declaration : declaration1 . SEMICOLON -+ -+ SEMICOLON shift 46 -+ -+ -+ . error -+ -+ -+state 5: -+ -+ externalDeclaration : declaration . (reduce by rule 3) -+ -+ -+ -+ . reduce by rule 3 -+ -+ -+state 6: -+ -+ externalDeclaration : functionDefinition . (reduce by rule 5) -+ -+ -+ -+ . reduce by rule 5 -+ -+ -+state 7: -+ -+ functionDefinition : fDefDeclaration . compoundStatement -+ functionDefinition : fDefDeclaration . declarationList compoundStatement -+ -+ LCURLY shift 52 -+ EXTERN shift 38 -+ AUTO shift 37 -+ STATIC shift 36 -+ REGISTER shift 35 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPEDEF shift 20 -+ TYPE_NAME shift 19 -+ -+ compoundStatement goto 51 -+ declarationSpecifiers goto 50 -+ declarationModifiers goto 49 -+ storageClassSpecifier goto 13 -+ typeSpecifier goto 12 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 10 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ declarationList goto 48 -+ declaration goto 47 -+ declaration1 goto 4 -+ structOrUnion goto 2 -+ -+ . error -+ -+ -+state 8: -+ -+ typeSpecifier : structOrUnionSpecifier . (reduce by rule 119) -+ -+ -+ -+ . reduce by rule 119 -+ -+ -+state 9: -+ -+ typeSpecifier : enumSpecifier . (reduce by rule 120) -+ -+ -+ -+ . reduce by rule 120 -+ -+ -+state 10: -+ -+ declarationModifiers : typeQualifier . (reduce by rule 110) -+ -+ -+ -+ . reduce by rule 110 -+ -+ -+state 11: -+ -+ typeSpecifier : typeSpecifierReserved . (reduce by rule 118) -+ -+ -+ -+ . reduce by rule 118 -+ -+ -+state 12: -+ -+ declarationSpecifiers : typeSpecifier . reservedDeclarationSpecifier -+ -+ -+ reservedDeclarationSpecifier goto 53 -+ -+ . reduce by rule 101 -+ -+ -+state 13: -+ -+ declarationModifiers : storageClassSpecifier . (reduce by rule 108) -+ -+ -+ -+ . reduce by rule 108 -+ -+ -+state 14: -+ -+ declarationSpecifiers : declarationModifiers . typeSpecifier reservedDeclarationSpecifier -+ declarationModifiers : declarationModifiers . storageClassSpecifier -+ declarationModifiers : declarationModifiers . typeQualifier -+ fDefDeclaration : declarationModifiers . notypeDeclarator -+ declaration1 : declarationModifiers . notypeInitDeclaratorList -+ -+ LPAREN shift 41 -+ TIMES shift 40 -+ ID shift 39 -+ EXTERN shift 38 -+ AUTO shift 37 -+ STATIC shift 36 -+ REGISTER shift 35 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPEDEF shift 20 -+ TYPE_NAME shift 19 -+ -+ notypeInitDeclarator goto 59 -+ notypeInitDeclaratorList goto 58 -+ pointer goto 18 -+ notypeDeclarator goto 57 -+ notypeDirectDeclarator goto 16 -+ storageClassSpecifier goto 56 -+ typeSpecifier goto 55 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 54 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ structOrUnion goto 2 -+ -+ . error -+ -+ -+state 15: -+ -+ fDefDeclaration : declarationSpecifiers . declarator -+ declaration1 : declarationSpecifiers . (reduce by rule 23) -+ declaration1 : declarationSpecifiers . initDeclaratorList -+ -+ LPAREN shift 68 -+ TIMES shift 40 -+ ID shift 39 -+ TYPE_NAME shift 67 -+ -+ initDeclarator goto 66 -+ initDeclaratorList goto 65 -+ pointer goto 64 -+ declarator goto 63 -+ aftertypeDeclarator goto 62 -+ notypeDeclarator goto 61 -+ aftertypeDirectDeclarator goto 60 -+ notypeDirectDeclarator goto 16 -+ -+ . reduce by rule 23 -+ -+ -+state 16: -+ -+ notypeDeclarator : notypeDirectDeclarator . (reduce by rule 182) -+ notypeDirectDeclarator : notypeDirectDeclarator . LBRACE RBRACE -+ notypeDirectDeclarator : notypeDirectDeclarator . LBRACE expr RBRACE -+ notypeDirectDeclarator : notypeDirectDeclarator . LPAREN RPAREN -+ notypeDirectDeclarator : notypeDirectDeclarator . LPAREN parameterTypeList RPAREN -+ notypeDirectDeclarator : notypeDirectDeclarator . LPAREN identlist RPAREN -+ -+ LPAREN shift 70 -+ LBRACE shift 69 -+ -+ -+ . reduce by rule 182 -+ -+ -+state 17: -+ -+ fDefDeclaration : notypeDeclarator . (reduce by rule 218) -+ -+ -+ -+ . reduce by rule 218 -+ -+ -+state 18: -+ -+ notypeDeclarator : pointer . notypeDirectDeclarator -+ -+ LPAREN shift 41 -+ ID shift 39 -+ -+ notypeDirectDeclarator goto 71 -+ -+ . error -+ -+ -+state 19: -+ -+ typeSpecifier : TYPE_NAME . (reduce by rule 121) -+ -+ -+ -+ . reduce by rule 121 -+ -+ -+state 20: -+ -+ storageClassSpecifier : TYPEDEF . (reduce by rule 167) -+ -+ -+ -+ . reduce by rule 167 -+ -+ -+state 21: -+ -+ typeSpecifierReserved : VOID . (reduce by rule 122) -+ -+ -+ -+ . reduce by rule 122 -+ -+ -+state 22: -+ -+ typeSpecifierReserved : SIGNED . (reduce by rule 129) -+ -+ -+ -+ . reduce by rule 129 -+ -+ -+state 23: -+ -+ typeSpecifierReserved : UNSIGNED . (reduce by rule 130) -+ -+ -+ -+ . reduce by rule 130 -+ -+ -+state 24: -+ -+ structOrUnion : UNION . (reduce by rule 137) -+ -+ -+ -+ . reduce by rule 137 -+ -+ -+state 25: -+ -+ structOrUnion : STRUCT . (reduce by rule 136) -+ -+ -+ -+ . reduce by rule 136 -+ -+ -+state 26: -+ -+ typeSpecifierReserved : SHORT . (reduce by rule 124) -+ -+ -+ -+ . reduce by rule 124 -+ -+ -+state 27: -+ -+ typeSpecifierReserved : LONG . (reduce by rule 126) -+ -+ -+ -+ . reduce by rule 126 -+ -+ -+state 28: -+ -+ typeSpecifierReserved : INT . (reduce by rule 125) -+ -+ -+ -+ . reduce by rule 125 -+ -+ -+state 29: -+ -+ typeSpecifierReserved : FLOAT . (reduce by rule 127) -+ -+ -+ -+ . reduce by rule 127 -+ -+ -+state 30: -+ -+ enumSpecifier : ENUM . LCURLY enumeratorList trailingComma RCURLY -+ enumSpecifier : ENUM . ID LCURLY enumeratorList trailingComma RCURLY -+ enumSpecifier : ENUM . TYPE_NAME LCURLY enumeratorList trailingComma RCURLY -+ enumSpecifier : ENUM . ID -+ enumSpecifier : ENUM . TYPE_NAME -+ -+ LCURLY shift 74 -+ ID shift 73 -+ TYPE_NAME shift 72 -+ -+ -+ . error -+ -+ -+state 31: -+ -+ typeSpecifierReserved : DOUBLE . (reduce by rule 128) -+ -+ -+ -+ . reduce by rule 128 -+ -+ -+state 32: -+ -+ typeSpecifierReserved : CHAR . (reduce by rule 123) -+ -+ -+ -+ . reduce by rule 123 -+ -+ -+state 33: -+ -+ typeQualifier : VOLATILE . (reduce by rule 153) -+ -+ -+ -+ . reduce by rule 153 -+ -+ -+state 34: -+ -+ typeQualifier : CONST . (reduce by rule 152) -+ -+ -+ -+ . reduce by rule 152 -+ -+ -+state 35: -+ -+ storageClassSpecifier : REGISTER . (reduce by rule 166) -+ -+ -+ -+ . reduce by rule 166 -+ -+ -+state 36: -+ -+ storageClassSpecifier : STATIC . (reduce by rule 164) -+ -+ -+ -+ . reduce by rule 164 -+ -+ -+state 37: -+ -+ storageClassSpecifier : AUTO . (reduce by rule 165) -+ -+ -+ -+ . reduce by rule 165 -+ -+ -+state 38: -+ -+ storageClassSpecifier : EXTERN . (reduce by rule 163) -+ -+ -+ -+ . reduce by rule 163 -+ -+ -+state 39: -+ -+ notypeDirectDeclarator : ID . (reduce by rule 197) -+ -+ -+ -+ . reduce by rule 197 -+ -+ -+state 40: -+ -+ pointer : TIMES . (reduce by rule 186) -+ pointer : TIMES . typeQualifierList -+ pointer : TIMES . pointer -+ pointer : TIMES . typeQualifierList pointer -+ -+ TIMES shift 40 -+ CONST shift 34 -+ VOLATILE shift 33 -+ -+ pointer goto 77 -+ typeQualifier goto 76 -+ typeQualifierList goto 75 -+ -+ . reduce by rule 186 -+ -+ -+state 41: -+ -+ notypeDirectDeclarator : LPAREN . notypeDeclarator RPAREN -+ -+ LPAREN shift 41 -+ TIMES shift 40 -+ ID shift 39 -+ -+ pointer goto 18 -+ notypeDeclarator goto 78 -+ notypeDirectDeclarator goto 16 -+ -+ . error -+ -+ -+state 42: -+ -+ externalDeclaration : SEMICOLON . (reduce by rule 4) -+ -+ -+ -+ . reduce by rule 4 -+ -+ -+state 43: -+ -+ structOrUnionSpecifier : structOrUnion TYPE_NAME . LCURLY structDeclarationList RCURLY -+ structOrUnionSpecifier : structOrUnion TYPE_NAME . (reduce by rule 135) -+ -+ LCURLY shift 79 -+ -+ -+ . reduce by rule 135 -+ -+ -+state 44: -+ -+ structOrUnionSpecifier : structOrUnion ID . LCURLY structDeclarationList RCURLY -+ structOrUnionSpecifier : structOrUnion ID . (reduce by rule 134) -+ -+ LCURLY shift 80 -+ -+ -+ . reduce by rule 134 -+ -+ -+state 45: -+ -+ structOrUnionSpecifier : structOrUnion LCURLY . structDeclarationList RCURLY -+ -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPE_NAME shift 19 -+ -+ typeSpecifier goto 85 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 76 -+ typeQualifierList goto 84 -+ specifierQualifierList goto 83 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ structOrUnion goto 2 -+ structDeclarationList goto 82 -+ structDeclaration goto 81 -+ -+ . error -+ -+ -+state 46: -+ -+ declaration : declaration1 SEMICOLON . (reduce by rule 22) -+ -+ -+ -+ . reduce by rule 22 -+ -+ -+state 47: -+ -+ declarationList : declaration . (reduce by rule 214) -+ -+ -+ -+ . reduce by rule 214 -+ -+ -+state 48: -+ -+ declarationList : declarationList . declaration -+ functionDefinition : fDefDeclaration declarationList . compoundStatement -+ -+ LCURLY shift 52 -+ EXTERN shift 38 -+ AUTO shift 37 -+ STATIC shift 36 -+ REGISTER shift 35 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPEDEF shift 20 -+ TYPE_NAME shift 19 -+ -+ compoundStatement goto 87 -+ declarationSpecifiers goto 50 -+ declarationModifiers goto 49 -+ storageClassSpecifier goto 13 -+ typeSpecifier goto 12 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 10 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ declaration goto 86 -+ declaration1 goto 4 -+ structOrUnion goto 2 -+ -+ . error -+ -+ -+state 49: -+ -+ declarationSpecifiers : declarationModifiers . typeSpecifier reservedDeclarationSpecifier -+ declarationModifiers : declarationModifiers . storageClassSpecifier -+ declarationModifiers : declarationModifiers . typeQualifier -+ declaration1 : declarationModifiers . notypeInitDeclaratorList -+ -+ LPAREN shift 41 -+ TIMES shift 40 -+ ID shift 39 -+ EXTERN shift 38 -+ AUTO shift 37 -+ STATIC shift 36 -+ REGISTER shift 35 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPEDEF shift 20 -+ TYPE_NAME shift 19 -+ -+ notypeInitDeclarator goto 59 -+ notypeInitDeclaratorList goto 58 -+ pointer goto 18 -+ notypeDeclarator goto 88 -+ notypeDirectDeclarator goto 16 -+ storageClassSpecifier goto 56 -+ typeSpecifier goto 55 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 54 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ structOrUnion goto 2 -+ -+ . error -+ -+ -+state 50: -+ -+ declaration1 : declarationSpecifiers . (reduce by rule 23) -+ declaration1 : declarationSpecifiers . initDeclaratorList -+ -+ LPAREN shift 68 -+ TIMES shift 40 -+ ID shift 39 -+ TYPE_NAME shift 67 -+ -+ initDeclarator goto 66 -+ initDeclaratorList goto 65 -+ pointer goto 64 -+ declarator goto 89 -+ aftertypeDeclarator goto 62 -+ notypeDeclarator goto 61 -+ aftertypeDirectDeclarator goto 60 -+ notypeDirectDeclarator goto 16 -+ -+ . reduce by rule 23 -+ -+ -+state 51: -+ -+ functionDefinition : fDefDeclaration compoundStatement . (reduce by rule 221) -+ -+ -+ -+ . reduce by rule 221 -+ -+ -+state 52: -+ -+ compoundStatement : LCURLY . pushScope declarationList ostatementlist popScope RCURLY -+ compoundStatement : LCURLY . ostatementlist RCURLY -+ -+ SEMICOLON shift 125 -+ LPAREN shift 124 -+ LCURLY shift 52 -+ RCURLY reduce by rule 27 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 115 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ EXTERN reduce by rule 245 -+ AUTO reduce by rule 245 -+ STATIC reduce by rule 245 -+ REGISTER reduce by rule 245 -+ CONST reduce by rule 245 -+ VOLATILE reduce by rule 245 -+ IF shift 110 -+ FOR shift 109 -+ DO shift 108 -+ SWITCH shift 107 -+ CASE shift 106 -+ DEFAULT shift 105 -+ WHILE shift 104 -+ RETURN shift 103 -+ BREAK shift 102 -+ CONTINUE shift 101 -+ GOTO shift 100 -+ CHAR reduce by rule 245 -+ DOUBLE reduce by rule 245 -+ ENUM reduce by rule 245 -+ FLOAT reduce by rule 245 -+ INT reduce by rule 245 -+ LONG reduce by rule 245 -+ SHORT reduce by rule 245 -+ STRUCT reduce by rule 245 -+ UNION reduce by rule 245 -+ UNSIGNED reduce by rule 245 -+ SIGNED reduce by rule 245 -+ VOID reduce by rule 245 -+ SIZEOF shift 99 -+ TYPEDEF reduce by rule 245 -+ TYPE_NAME reduce by rule 245 -+ -+ statement goto 98 -+ ostatementlist goto 97 -+ statementlist goto 96 -+ compoundStatement goto 95 -+ expr goto 94 -+ exprWComma goto 93 -+ unaryOperator goto 92 -+ pushScope goto 91 -+ strings goto 90 -+ -+ . error -+ -+ -+state 53: -+ -+ declarationSpecifiers : typeSpecifier reservedDeclarationSpecifier . (reduce by rule 99) -+ reservedDeclarationSpecifier : reservedDeclarationSpecifier . specifierQualifierReserved -+ reservedDeclarationSpecifier : reservedDeclarationSpecifier . storageClassSpecifier -+ -+ EXTERN shift 38 -+ AUTO shift 37 -+ STATIC shift 36 -+ REGISTER shift 35 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPEDEF shift 20 -+ -+ specifierQualifierReserved goto 131 -+ storageClassSpecifier goto 130 -+ typeSpecifierReserved goto 129 -+ typeQualifier goto 128 -+ enumSpecifier goto 127 -+ structOrUnionSpecifier goto 126 -+ structOrUnion goto 2 -+ -+ . reduce by rule 99 -+ -+ -+state 54: -+ -+ declarationModifiers : declarationModifiers typeQualifier . (reduce by rule 111) -+ -+ -+ -+ . reduce by rule 111 -+ -+ -+state 55: -+ -+ declarationSpecifiers : declarationModifiers typeSpecifier . reservedDeclarationSpecifier -+ -+ -+ reservedDeclarationSpecifier goto 132 -+ -+ . reduce by rule 101 -+ -+ -+state 56: -+ -+ declarationModifiers : declarationModifiers storageClassSpecifier . (reduce by rule 109) -+ -+ -+ -+ . reduce by rule 109 -+ -+ -+state 57: -+ -+ notypeInitDeclarator : notypeDeclarator . (reduce by rule 176) -+ notypeInitDeclarator : notypeDeclarator . EQUALS initializer -+ fDefDeclaration : declarationModifiers notypeDeclarator . (reduce by rule 220) -+ -+ SEMICOLON reduce by rule 176 -+ LCURLY reduce by rule 220 -+ COMMA reduce by rule 176 -+ EQUALS shift 133 -+ EXTERN reduce by rule 220 -+ AUTO reduce by rule 220 -+ STATIC reduce by rule 220 -+ REGISTER reduce by rule 220 -+ CONST reduce by rule 220 -+ VOLATILE reduce by rule 220 -+ CHAR reduce by rule 220 -+ DOUBLE reduce by rule 220 -+ ENUM reduce by rule 220 -+ FLOAT reduce by rule 220 -+ INT reduce by rule 220 -+ LONG reduce by rule 220 -+ SHORT reduce by rule 220 -+ STRUCT reduce by rule 220 -+ UNION reduce by rule 220 -+ UNSIGNED reduce by rule 220 -+ SIGNED reduce by rule 220 -+ VOID reduce by rule 220 -+ TYPEDEF reduce by rule 220 -+ TYPE_NAME reduce by rule 220 -+ -+ -+ . error -+ -+ -+state 58: -+ -+ notypeInitDeclaratorList : notypeInitDeclaratorList . COMMA initDeclarator -+ declaration1 : declarationModifiers notypeInitDeclaratorList . (reduce by rule 25) -+ -+ COMMA shift 134 -+ -+ -+ . reduce by rule 25 -+ -+ -+state 59: -+ -+ notypeInitDeclaratorList : notypeInitDeclarator . (reduce by rule 174) -+ -+ -+ -+ . reduce by rule 174 -+ -+ -+state 60: -+ -+ aftertypeDeclarator : aftertypeDirectDeclarator . (reduce by rule 180) -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LBRACE RBRACE -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LBRACE expr RBRACE -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LPAREN RPAREN -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LPAREN parameterTypeList RPAREN -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LPAREN identlist RPAREN -+ -+ LPAREN shift 136 -+ LBRACE shift 135 -+ -+ -+ . reduce by rule 180 -+ -+ -+state 61: -+ -+ declarator : notypeDeclarator . (reduce by rule 179) -+ -+ -+ -+ . reduce by rule 179 -+ -+ -+state 62: -+ -+ declarator : aftertypeDeclarator . (reduce by rule 178) -+ -+ -+ -+ . reduce by rule 178 -+ -+ -+state 63: -+ -+ initDeclarator : declarator . (reduce by rule 172) -+ initDeclarator : declarator . EQUALS initializer -+ fDefDeclaration : declarationSpecifiers declarator . (reduce by rule 219) -+ -+ SEMICOLON reduce by rule 172 -+ LCURLY reduce by rule 219 -+ COMMA reduce by rule 172 -+ EQUALS shift 137 -+ EXTERN reduce by rule 219 -+ AUTO reduce by rule 219 -+ STATIC reduce by rule 219 -+ REGISTER reduce by rule 219 -+ CONST reduce by rule 219 -+ VOLATILE reduce by rule 219 -+ CHAR reduce by rule 219 -+ DOUBLE reduce by rule 219 -+ ENUM reduce by rule 219 -+ FLOAT reduce by rule 219 -+ INT reduce by rule 219 -+ LONG reduce by rule 219 -+ SHORT reduce by rule 219 -+ STRUCT reduce by rule 219 -+ UNION reduce by rule 219 -+ UNSIGNED reduce by rule 219 -+ SIGNED reduce by rule 219 -+ VOID reduce by rule 219 -+ TYPEDEF reduce by rule 219 -+ TYPE_NAME reduce by rule 219 -+ -+ -+ . error -+ -+ -+state 64: -+ -+ aftertypeDeclarator : pointer . aftertypeDirectDeclarator -+ notypeDeclarator : pointer . notypeDirectDeclarator -+ -+ LPAREN shift 68 -+ ID shift 39 -+ TYPE_NAME shift 67 -+ -+ aftertypeDirectDeclarator goto 138 -+ notypeDirectDeclarator goto 71 -+ -+ . error -+ -+ -+state 65: -+ -+ initDeclaratorList : initDeclaratorList . COMMA initDeclarator -+ declaration1 : declarationSpecifiers initDeclaratorList . (reduce by rule 24) -+ -+ COMMA shift 139 -+ -+ -+ . reduce by rule 24 -+ -+ -+state 66: -+ -+ initDeclaratorList : initDeclarator . (reduce by rule 170) -+ -+ -+ -+ . reduce by rule 170 -+ -+ -+state 67: -+ -+ aftertypeDirectDeclarator : TYPE_NAME . (reduce by rule 190) -+ -+ -+ -+ . reduce by rule 190 -+ -+ -+state 68: -+ -+ aftertypeDirectDeclarator : LPAREN . aftertypeDeclarator RPAREN -+ notypeDirectDeclarator : LPAREN . notypeDeclarator RPAREN -+ -+ LPAREN shift 68 -+ TIMES shift 40 -+ ID shift 39 -+ TYPE_NAME shift 67 -+ -+ pointer goto 64 -+ aftertypeDeclarator goto 140 -+ notypeDeclarator goto 78 -+ aftertypeDirectDeclarator goto 60 -+ notypeDirectDeclarator goto 16 -+ -+ . error -+ -+ -+state 69: -+ -+ notypeDirectDeclarator : notypeDirectDeclarator LBRACE . RBRACE -+ notypeDirectDeclarator : notypeDirectDeclarator LBRACE . expr RBRACE -+ -+ LPAREN shift 124 -+ RBRACE shift 143 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ SIZEOF shift 99 -+ -+ expr goto 141 -+ unaryOperator goto 92 -+ strings goto 90 -+ -+ . error -+ -+ -+state 70: -+ -+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN . RPAREN -+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN . parameterTypeList RPAREN -+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN . identlist RPAREN -+ -+ RPAREN shift 151 -+ ID shift 150 -+ EXTERN shift 38 -+ AUTO shift 37 -+ STATIC shift 36 -+ REGISTER shift 35 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPEDEF shift 20 -+ TYPE_NAME shift 19 -+ -+ declarationSpecifiers goto 149 -+ declarationModifiers goto 148 -+ storageClassSpecifier goto 13 -+ typeSpecifier goto 12 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 10 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ identlist goto 147 -+ parameterList goto 146 -+ parameterTypeList goto 145 -+ parameterDeclaration goto 144 -+ structOrUnion goto 2 -+ -+ . error -+ -+ -+state 71: -+ -+ notypeDeclarator : pointer notypeDirectDeclarator . (reduce by rule 183) -+ notypeDirectDeclarator : notypeDirectDeclarator . LBRACE RBRACE -+ notypeDirectDeclarator : notypeDirectDeclarator . LBRACE expr RBRACE -+ notypeDirectDeclarator : notypeDirectDeclarator . LPAREN RPAREN -+ notypeDirectDeclarator : notypeDirectDeclarator . LPAREN parameterTypeList RPAREN -+ notypeDirectDeclarator : notypeDirectDeclarator . LPAREN identlist RPAREN -+ -+ LPAREN shift 70 -+ LBRACE shift 69 -+ -+ -+ . reduce by rule 183 -+ -+ -+state 72: -+ -+ enumSpecifier : ENUM TYPE_NAME . LCURLY enumeratorList trailingComma RCURLY -+ enumSpecifier : ENUM TYPE_NAME . (reduce by rule 158) -+ -+ LCURLY shift 152 -+ -+ -+ . reduce by rule 158 -+ -+ -+state 73: -+ -+ enumSpecifier : ENUM ID . LCURLY enumeratorList trailingComma RCURLY -+ enumSpecifier : ENUM ID . (reduce by rule 157) -+ -+ LCURLY shift 153 -+ -+ -+ . reduce by rule 157 -+ -+ -+state 74: -+ -+ enumSpecifier : ENUM LCURLY . enumeratorList trailingComma RCURLY -+ -+ ID shift 156 -+ -+ enumeratorList goto 155 -+ enumerator goto 154 -+ -+ . error -+ -+ -+state 75: -+ -+ pointer : TIMES typeQualifierList . (reduce by rule 187) -+ pointer : TIMES typeQualifierList . pointer -+ -+ TIMES shift 40 -+ -+ pointer goto 157 -+ -+ . reduce by rule 187 -+ -+ -+state 76: -+ -+ typeQualifierList : typeQualifier . (reduce by rule 116) -+ typeQualifierList : typeQualifier . typeQualifierList -+ -+ CONST shift 34 -+ VOLATILE shift 33 -+ -+ typeQualifier goto 76 -+ typeQualifierList goto 158 -+ -+ . reduce by rule 116 -+ -+ -+state 77: -+ -+ pointer : TIMES pointer . (reduce by rule 188) -+ -+ -+ -+ . reduce by rule 188 -+ -+ -+state 78: -+ -+ notypeDirectDeclarator : LPAREN notypeDeclarator . RPAREN -+ -+ RPAREN shift 159 -+ -+ -+ . error -+ -+ -+state 79: -+ -+ structOrUnionSpecifier : structOrUnion TYPE_NAME LCURLY . structDeclarationList RCURLY -+ -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPE_NAME shift 19 -+ -+ typeSpecifier goto 85 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 76 -+ typeQualifierList goto 84 -+ specifierQualifierList goto 83 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ structOrUnion goto 2 -+ structDeclarationList goto 160 -+ structDeclaration goto 81 -+ -+ . error -+ -+ -+state 80: -+ -+ structOrUnionSpecifier : structOrUnion ID LCURLY . structDeclarationList RCURLY -+ -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPE_NAME shift 19 -+ -+ typeSpecifier goto 85 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 76 -+ typeQualifierList goto 84 -+ specifierQualifierList goto 83 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ structOrUnion goto 2 -+ structDeclarationList goto 161 -+ structDeclaration goto 81 -+ -+ . error -+ -+ -+state 81: -+ -+ structDeclarationList : structDeclaration . (reduce by rule 138) -+ -+ -+ -+ . reduce by rule 138 -+ -+ -+state 82: -+ -+ structOrUnionSpecifier : structOrUnion LCURLY structDeclarationList . RCURLY -+ structDeclarationList : structDeclarationList . structDeclaration -+ -+ RCURLY shift 163 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPE_NAME shift 19 -+ -+ typeSpecifier goto 85 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 76 -+ typeQualifierList goto 84 -+ specifierQualifierList goto 83 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ structOrUnion goto 2 -+ structDeclaration goto 162 -+ -+ . error -+ -+ -+state 83: -+ -+ structDeclaration : specifierQualifierList . structDeclaratorList SEMICOLON -+ -+ COLON shift 167 -+ LPAREN shift 68 -+ TIMES shift 40 -+ ID shift 39 -+ TYPE_NAME shift 67 -+ -+ pointer goto 64 -+ declarator goto 166 -+ aftertypeDeclarator goto 62 -+ notypeDeclarator goto 61 -+ aftertypeDirectDeclarator goto 60 -+ notypeDirectDeclarator goto 16 -+ structDeclarator goto 165 -+ structDeclaratorList goto 164 -+ -+ . error -+ -+ -+state 84: -+ -+ specifierQualifierList : typeQualifierList . typeSpecifier reservedSpecifierQualifiers -+ structDeclaration : typeQualifierList . notypeStructDeclaratorList SEMICOLON -+ -+ COLON shift 172 -+ LPAREN shift 41 -+ TIMES shift 40 -+ ID shift 39 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPE_NAME shift 19 -+ -+ pointer goto 18 -+ notypeDeclarator goto 171 -+ notypeDirectDeclarator goto 16 -+ typeSpecifier goto 170 -+ typeSpecifierReserved goto 11 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ structOrUnion goto 2 -+ notypeStructDeclarator goto 169 -+ notypeStructDeclaratorList goto 168 -+ -+ . error -+ -+ -+state 85: -+ -+ specifierQualifierList : typeSpecifier . reservedSpecifierQualifiers -+ -+ -+ reservedSpecifierQualifiers goto 173 -+ -+ . reduce by rule 114 -+ -+ -+state 86: -+ -+ declarationList : declarationList declaration . (reduce by rule 215) -+ -+ -+ -+ . reduce by rule 215 -+ -+ -+state 87: -+ -+ functionDefinition : fDefDeclaration declarationList compoundStatement . (reduce by rule 222) -+ -+ -+ -+ . reduce by rule 222 -+ -+ -+state 88: -+ -+ notypeInitDeclarator : notypeDeclarator . (reduce by rule 176) -+ notypeInitDeclarator : notypeDeclarator . EQUALS initializer -+ -+ EQUALS shift 133 -+ -+ -+ . reduce by rule 176 -+ -+ -+state 89: -+ -+ initDeclarator : declarator . (reduce by rule 172) -+ initDeclarator : declarator . EQUALS initializer -+ -+ EQUALS shift 137 -+ -+ -+ . reduce by rule 172 -+ -+ -+state 90: -+ -+ expr : strings . (reduce by rule 88) -+ -+ -+ -+ . reduce by rule 88 -+ -+ -+state 91: -+ -+ compoundStatement : LCURLY pushScope . declarationList ostatementlist popScope RCURLY -+ -+ EXTERN shift 38 -+ AUTO shift 37 -+ STATIC shift 36 -+ REGISTER shift 35 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPEDEF shift 20 -+ TYPE_NAME shift 19 -+ -+ declarationSpecifiers goto 50 -+ declarationModifiers goto 49 -+ storageClassSpecifier goto 13 -+ typeSpecifier goto 12 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 10 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ declarationList goto 174 -+ declaration goto 47 -+ declaration1 goto 4 -+ structOrUnion goto 2 -+ -+ . error -+ -+ -+state 92: -+ -+ expr : unaryOperator . expr -+ -+ LPAREN shift 124 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ SIZEOF shift 99 -+ -+ expr goto 175 -+ unaryOperator goto 92 -+ strings goto 90 -+ -+ . error -+ -+ -+state 93: -+ -+ statement : exprWComma . SEMICOLON -+ exprWComma : exprWComma . COMMA expr -+ -+ SEMICOLON shift 177 -+ COMMA shift 176 -+ -+ -+ . error -+ -+ -+state 94: -+ -+ expr : expr . QUESTION exprWComma COLON expr -+ expr : expr . PLUSEQUALS expr -+ expr : expr . MINUSEQUALS expr -+ expr : expr . TIMESEQUALS expr -+ expr : expr . DIVEQUALS expr -+ expr : expr . MODEQUALS expr -+ expr : expr . XOREQUALS expr -+ expr : expr . OREQUALS expr -+ expr : expr . ANDEQUALS expr -+ expr : expr . LSHIFTEQUALS expr -+ expr : expr . RSHIFTEQUALS expr -+ expr : expr . EQUALS expr -+ expr : expr . OR expr -+ expr : expr . AND expr -+ expr : expr . BAR expr -+ expr : expr . HAT expr -+ expr : expr . AMP expr -+ expr : expr . EQ expr -+ expr : expr . NEQ expr -+ expr : expr . LT expr -+ expr : expr . GT expr -+ expr : expr . LTE expr -+ expr : expr . GTE expr -+ expr : expr . LSHIFT expr -+ expr : expr . RSHIFT expr -+ expr : expr . PLUS expr -+ expr : expr . MINUS expr -+ expr : expr . TIMES expr -+ expr : expr . DIVIDE expr -+ expr : expr . PERCENT expr -+ expr : expr . INC -+ expr : expr . DEC -+ expr : expr . LBRACE exprWComma RBRACE -+ expr : expr . LPAREN RPAREN -+ expr : expr . LPAREN argumentExprList RPAREN -+ expr : expr . DOT ID -+ expr : expr . ARROW ID -+ expr : expr . DOT TYPE_NAME -+ expr : expr . ARROW TYPE_NAME -+ exprWComma : expr . (reduce by rule 91) -+ -+ LPAREN shift 213 -+ LBRACE shift 212 -+ DOT shift 211 -+ QUESTION shift 210 -+ PERCENT shift 209 -+ AMP shift 208 -+ BAR shift 207 -+ DIVIDE shift 206 -+ PLUS shift 205 -+ MINUS shift 204 -+ HAT shift 203 -+ TIMES shift 202 -+ INC shift 201 -+ DEC shift 200 -+ ARROW shift 199 -+ EQUALS shift 198 -+ PLUSEQUALS shift 197 -+ MINUSEQUALS shift 196 -+ XOREQUALS shift 195 -+ MODEQUALS shift 194 -+ TIMESEQUALS shift 193 -+ DIVEQUALS shift 192 -+ OREQUALS shift 191 -+ ANDEQUALS shift 190 -+ LSHIFTEQUALS shift 189 -+ RSHIFTEQUALS shift 188 -+ LTE shift 187 -+ GTE shift 186 -+ LT shift 185 -+ GT shift 184 -+ EQ shift 183 -+ NEQ shift 182 -+ OR shift 181 -+ AND shift 180 -+ LSHIFT shift 179 -+ RSHIFT shift 178 -+ -+ -+ . reduce by rule 91 -+ -+ -+state 95: -+ -+ statement : compoundStatement . (reduce by rule 14) -+ -+ -+ -+ . reduce by rule 14 -+ -+ -+state 96: -+ -+ ostatementlist : statementlist . (reduce by rule 26) -+ statementlist : statementlist . statement -+ -+ SEMICOLON shift 125 -+ LPAREN shift 124 -+ LCURLY shift 52 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 115 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ IF shift 110 -+ FOR shift 109 -+ DO shift 108 -+ SWITCH shift 107 -+ CASE shift 106 -+ DEFAULT shift 105 -+ WHILE shift 104 -+ RETURN shift 103 -+ BREAK shift 102 -+ CONTINUE shift 101 -+ GOTO shift 100 -+ SIZEOF shift 99 -+ -+ statement goto 214 -+ compoundStatement goto 95 -+ expr goto 94 -+ exprWComma goto 93 -+ unaryOperator goto 92 -+ strings goto 90 -+ -+ . reduce by rule 26 -+ -+ -+state 97: -+ -+ compoundStatement : LCURLY ostatementlist . RCURLY -+ -+ RCURLY shift 215 -+ -+ -+ . error -+ -+ -+state 98: -+ -+ statementlist : statement . (reduce by rule 28) -+ -+ -+ -+ . reduce by rule 28 -+ -+ -+state 99: -+ -+ expr : SIZEOF . expr -+ expr : SIZEOF . LPAREN typeName RPAREN -+ -+ LPAREN shift 217 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ SIZEOF shift 99 -+ -+ expr goto 216 -+ unaryOperator goto 92 -+ strings goto 90 -+ -+ . error -+ -+ -+state 100: -+ -+ statement : GOTO . ID SEMICOLON -+ -+ ID shift 218 -+ -+ -+ . error -+ -+ -+state 101: -+ -+ statement : CONTINUE . SEMICOLON -+ -+ SEMICOLON shift 219 -+ -+ -+ . error -+ -+ -+state 102: -+ -+ statement : BREAK . SEMICOLON -+ -+ SEMICOLON shift 220 -+ -+ -+ . error -+ -+ -+state 103: -+ -+ statement : RETURN . opExpr SEMICOLON -+ -+ LPAREN shift 124 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ SIZEOF shift 99 -+ -+ expr goto 94 -+ opExpr goto 222 -+ exprWComma goto 221 -+ unaryOperator goto 92 -+ strings goto 90 -+ -+ . reduce by rule 93 -+ -+ -+state 104: -+ -+ statement : WHILE . LPAREN exprWComma RPAREN statement -+ -+ LPAREN shift 223 -+ -+ -+ . error -+ -+ -+state 105: -+ -+ statement : DEFAULT . COLON statement -+ -+ COLON shift 224 -+ -+ -+ . error -+ -+ -+state 106: -+ -+ statement : CASE . exprWComma COLON statement -+ -+ LPAREN shift 124 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ SIZEOF shift 99 -+ -+ expr goto 94 -+ exprWComma goto 225 -+ unaryOperator goto 92 -+ strings goto 90 -+ -+ . error -+ -+ -+state 107: -+ -+ statement : SWITCH . LPAREN exprWComma RPAREN statement -+ -+ LPAREN shift 226 -+ -+ -+ . error -+ -+ -+state 108: -+ -+ statement : DO . statement WHILE LPAREN exprWComma RPAREN SEMICOLON -+ -+ SEMICOLON shift 125 -+ LPAREN shift 124 -+ LCURLY shift 52 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 115 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ IF shift 110 -+ FOR shift 109 -+ DO shift 108 -+ SWITCH shift 107 -+ CASE shift 106 -+ DEFAULT shift 105 -+ WHILE shift 104 -+ RETURN shift 103 -+ BREAK shift 102 -+ CONTINUE shift 101 -+ GOTO shift 100 -+ SIZEOF shift 99 -+ -+ statement goto 227 -+ compoundStatement goto 95 -+ expr goto 94 -+ exprWComma goto 93 -+ unaryOperator goto 92 -+ strings goto 90 -+ -+ . error -+ -+ -+state 109: -+ -+ statement : FOR . LPAREN opExpr SEMICOLON opExpr SEMICOLON opExpr RPAREN statement -+ -+ LPAREN shift 228 -+ -+ -+ . error -+ -+ -+state 110: -+ -+ statement : IF . LPAREN exprWComma RPAREN statement -+ statement : IF . LPAREN exprWComma RPAREN statement ELSE statement -+ -+ LPAREN shift 229 -+ -+ -+ . error -+ -+ -+state 111: -+ -+ expr : CCONST . (reduce by rule 86) -+ -+ -+ -+ . reduce by rule 86 -+ -+ -+state 112: -+ -+ strings : STRING . (reduce by rule 89) -+ strings : STRING . strings -+ -+ STRING shift 112 -+ -+ strings goto 230 -+ -+ . reduce by rule 89 -+ -+ -+state 113: -+ -+ expr : REALNUM . (reduce by rule 85) -+ -+ -+ -+ . reduce by rule 85 -+ -+ -+state 114: -+ -+ expr : DECNUM . (reduce by rule 84) -+ -+ -+ -+ . reduce by rule 84 -+ -+ -+state 115: -+ -+ statement : ID . COLON statement -+ expr : ID . (reduce by rule 87) -+ -+ COLON shift 231 -+ -+ -+ . reduce by rule 87 -+ -+ -+state 116: -+ -+ expr : DEC . expr -+ -+ LPAREN shift 124 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ SIZEOF shift 99 -+ -+ expr goto 232 -+ unaryOperator goto 92 -+ strings goto 90 -+ -+ . error -+ -+ -+state 117: -+ -+ expr : INC . expr -+ -+ LPAREN shift 124 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ SIZEOF shift 99 -+ -+ expr goto 233 -+ unaryOperator goto 92 -+ strings goto 90 -+ -+ . error -+ -+ -+state 118: -+ -+ unaryOperator : TIMES . (reduce by rule 33) -+ -+ -+ -+ . reduce by rule 33 -+ -+ -+state 119: -+ -+ unaryOperator : BANG . (reduce by rule 37) -+ -+ -+ -+ . reduce by rule 37 -+ -+ -+state 120: -+ -+ unaryOperator : MINUS . (reduce by rule 35) -+ -+ -+ -+ . reduce by rule 35 -+ -+ -+state 121: -+ -+ unaryOperator : PLUS . (reduce by rule 34) -+ -+ -+ -+ . reduce by rule 34 -+ -+ -+state 122: -+ -+ unaryOperator : TILDE . (reduce by rule 36) -+ -+ -+ -+ . reduce by rule 36 -+ -+ -+state 123: -+ -+ unaryOperator : AMP . (reduce by rule 32) -+ -+ -+ -+ . reduce by rule 32 -+ -+ -+state 124: -+ -+ expr : LPAREN . typeName RPAREN expr -+ expr : LPAREN . exprWComma RPAREN -+ -+ LPAREN shift 124 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ SIZEOF shift 99 -+ TYPE_NAME shift 19 -+ -+ expr goto 94 -+ exprWComma goto 237 -+ unaryOperator goto 92 -+ typeName goto 236 -+ typeSpecifier goto 85 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 76 -+ typeQualifierList goto 235 -+ specifierQualifierList goto 234 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ structOrUnion goto 2 -+ strings goto 90 -+ -+ . error -+ -+ -+state 125: -+ -+ statement : SEMICOLON . (reduce by rule 21) -+ -+ -+ -+ . reduce by rule 21 -+ -+ -+state 126: -+ -+ specifierQualifierReserved : structOrUnionSpecifier . (reduce by rule 106) -+ -+ -+ -+ . reduce by rule 106 -+ -+ -+state 127: -+ -+ specifierQualifierReserved : enumSpecifier . (reduce by rule 107) -+ -+ -+ -+ . reduce by rule 107 -+ -+ -+state 128: -+ -+ specifierQualifierReserved : typeQualifier . (reduce by rule 105) -+ -+ -+ -+ . reduce by rule 105 -+ -+ -+state 129: -+ -+ specifierQualifierReserved : typeSpecifierReserved . (reduce by rule 104) -+ -+ -+ -+ . reduce by rule 104 -+ -+ -+state 130: -+ -+ reservedDeclarationSpecifier : reservedDeclarationSpecifier storageClassSpecifier . (reduce by rule 103) -+ -+ -+ -+ . reduce by rule 103 -+ -+ -+state 131: -+ -+ reservedDeclarationSpecifier : reservedDeclarationSpecifier specifierQualifierReserved . (reduce by rule 102) -+ -+ -+ -+ . reduce by rule 102 -+ -+ -+state 132: -+ -+ declarationSpecifiers : declarationModifiers typeSpecifier reservedDeclarationSpecifier . (reduce by rule 100) -+ reservedDeclarationSpecifier : reservedDeclarationSpecifier . specifierQualifierReserved -+ reservedDeclarationSpecifier : reservedDeclarationSpecifier . storageClassSpecifier -+ -+ EXTERN shift 38 -+ AUTO shift 37 -+ STATIC shift 36 -+ REGISTER shift 35 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPEDEF shift 20 -+ -+ specifierQualifierReserved goto 131 -+ storageClassSpecifier goto 130 -+ typeSpecifierReserved goto 129 -+ typeQualifier goto 128 -+ enumSpecifier goto 127 -+ structOrUnionSpecifier goto 126 -+ structOrUnion goto 2 -+ -+ . reduce by rule 100 -+ -+ -+state 133: -+ -+ notypeInitDeclarator : notypeDeclarator EQUALS . initializer -+ -+ LPAREN shift 124 -+ LCURLY shift 240 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ SIZEOF shift 99 -+ -+ expr goto 239 -+ unaryOperator goto 92 -+ initializer goto 238 -+ strings goto 90 -+ -+ . error -+ -+ -+state 134: -+ -+ notypeInitDeclaratorList : notypeInitDeclaratorList COMMA . initDeclarator -+ -+ LPAREN shift 68 -+ TIMES shift 40 -+ ID shift 39 -+ TYPE_NAME shift 67 -+ -+ initDeclarator goto 241 -+ pointer goto 64 -+ declarator goto 89 -+ aftertypeDeclarator goto 62 -+ notypeDeclarator goto 61 -+ aftertypeDirectDeclarator goto 60 -+ notypeDirectDeclarator goto 16 -+ -+ . error -+ -+ -+state 135: -+ -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LBRACE . RBRACE -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LBRACE . expr RBRACE -+ -+ LPAREN shift 124 -+ RBRACE shift 243 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ SIZEOF shift 99 -+ -+ expr goto 242 -+ unaryOperator goto 92 -+ strings goto 90 -+ -+ . error -+ -+ -+state 136: -+ -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LPAREN . RPAREN -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LPAREN . parameterTypeList RPAREN -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LPAREN . identlist RPAREN -+ -+ RPAREN shift 246 -+ ID shift 150 -+ EXTERN shift 38 -+ AUTO shift 37 -+ STATIC shift 36 -+ REGISTER shift 35 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPEDEF shift 20 -+ TYPE_NAME shift 19 -+ -+ declarationSpecifiers goto 149 -+ declarationModifiers goto 148 -+ storageClassSpecifier goto 13 -+ typeSpecifier goto 12 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 10 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ identlist goto 245 -+ parameterList goto 146 -+ parameterTypeList goto 244 -+ parameterDeclaration goto 144 -+ structOrUnion goto 2 -+ -+ . error -+ -+ -+state 137: -+ -+ initDeclarator : declarator EQUALS . initializer -+ -+ LPAREN shift 124 -+ LCURLY shift 240 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ SIZEOF shift 99 -+ -+ expr goto 239 -+ unaryOperator goto 92 -+ initializer goto 247 -+ strings goto 90 -+ -+ . error -+ -+ -+state 138: -+ -+ aftertypeDeclarator : pointer aftertypeDirectDeclarator . (reduce by rule 181) -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LBRACE RBRACE -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LBRACE expr RBRACE -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LPAREN RPAREN -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LPAREN parameterTypeList RPAREN -+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LPAREN identlist RPAREN -+ -+ LPAREN shift 136 -+ LBRACE shift 135 -+ -+ -+ . reduce by rule 181 -+ -+ -+state 139: -+ -+ initDeclaratorList : initDeclaratorList COMMA . initDeclarator -+ -+ LPAREN shift 68 -+ TIMES shift 40 -+ ID shift 39 -+ TYPE_NAME shift 67 -+ -+ initDeclarator goto 248 -+ pointer goto 64 -+ declarator goto 89 -+ aftertypeDeclarator goto 62 -+ notypeDeclarator goto 61 -+ aftertypeDirectDeclarator goto 60 -+ notypeDirectDeclarator goto 16 -+ -+ . error -+ -+ -+state 140: -+ -+ aftertypeDirectDeclarator : LPAREN aftertypeDeclarator . RPAREN -+ -+ RPAREN shift 249 -+ -+ -+ . error -+ -+ -+state 141: -+ -+ expr : expr . QUESTION exprWComma COLON expr -+ expr : expr . PLUSEQUALS expr -+ expr : expr . MINUSEQUALS expr -+ expr : expr . TIMESEQUALS expr -+ expr : expr . DIVEQUALS expr -+ expr : expr . MODEQUALS expr -+ expr : expr . XOREQUALS expr -+ expr : expr . OREQUALS expr -+ expr : expr . ANDEQUALS expr -+ expr : expr . LSHIFTEQUALS expr -+ expr : expr . RSHIFTEQUALS expr -+ expr : expr . EQUALS expr -+ expr : expr . OR expr -+ expr : expr . AND expr -+ expr : expr . BAR expr -+ expr : expr . HAT expr -+ expr : expr . AMP expr -+ expr : expr . EQ expr -+ expr : expr . NEQ expr -+ expr : expr . LT expr -+ expr : expr . GT expr -+ expr : expr . LTE expr -+ expr : expr . GTE expr -+ expr : expr . LSHIFT expr -+ expr : expr . RSHIFT expr -+ expr : expr . PLUS expr -+ expr : expr . MINUS expr -+ expr : expr . TIMES expr -+ expr : expr . DIVIDE expr -+ expr : expr . PERCENT expr -+ expr : expr . INC -+ expr : expr . DEC -+ expr : expr . LBRACE exprWComma RBRACE -+ expr : expr . LPAREN RPAREN -+ expr : expr . LPAREN argumentExprList RPAREN -+ expr : expr . DOT ID -+ expr : expr . ARROW ID -+ expr : expr . DOT TYPE_NAME -+ expr : expr . ARROW TYPE_NAME -+ notypeDirectDeclarator : notypeDirectDeclarator LBRACE expr . RBRACE -+ -+ LPAREN shift 213 -+ LBRACE shift 212 -+ RBRACE shift 250 -+ DOT shift 211 -+ QUESTION shift 210 -+ PERCENT shift 209 -+ AMP shift 208 -+ BAR shift 207 -+ DIVIDE shift 206 -+ PLUS shift 205 -+ MINUS shift 204 -+ HAT shift 203 -+ TIMES shift 202 -+ INC shift 201 -+ DEC shift 200 -+ ARROW shift 199 -+ EQUALS shift 198 -+ PLUSEQUALS shift 197 -+ MINUSEQUALS shift 196 -+ XOREQUALS shift 195 -+ MODEQUALS shift 194 -+ TIMESEQUALS shift 193 -+ DIVEQUALS shift 192 -+ OREQUALS shift 191 -+ ANDEQUALS shift 190 -+ LSHIFTEQUALS shift 189 -+ RSHIFTEQUALS shift 188 -+ LTE shift 187 -+ GTE shift 186 -+ LT shift 185 -+ GT shift 184 -+ EQ shift 183 -+ NEQ shift 182 -+ OR shift 181 -+ AND shift 180 -+ LSHIFT shift 179 -+ RSHIFT shift 178 -+ -+ -+ . error -+ -+ -+state 142: -+ -+ expr : ID . (reduce by rule 87) -+ -+ -+ -+ . reduce by rule 87 -+ -+ -+state 143: -+ -+ notypeDirectDeclarator : notypeDirectDeclarator LBRACE RBRACE . (reduce by rule 199) -+ -+ -+ -+ . reduce by rule 199 -+ -+ -+state 144: -+ -+ parameterList : parameterDeclaration . (reduce by rule 237) -+ -+ -+ -+ . reduce by rule 237 -+ -+ -+state 145: -+ -+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN parameterTypeList . RPAREN -+ -+ RPAREN shift 251 -+ -+ -+ . error -+ -+ -+state 146: -+ -+ parameterList : parameterList . COMMA parameterDeclaration -+ parameterTypeList : parameterList . (reduce by rule 235) -+ parameterTypeList : parameterList . COMMA ELIPSIS -+ -+ COMMA shift 252 -+ -+ -+ . reduce by rule 235 -+ -+ -+state 147: -+ -+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN identlist . RPAREN -+ identlist : identlist . COMMA ID -+ -+ RPAREN shift 254 -+ COMMA shift 253 -+ -+ -+ . error -+ -+ -+state 148: -+ -+ declarationSpecifiers : declarationModifiers . typeSpecifier reservedDeclarationSpecifier -+ declarationModifiers : declarationModifiers . storageClassSpecifier -+ declarationModifiers : declarationModifiers . typeQualifier -+ parameterDeclaration : declarationModifiers . notypeDeclarator -+ parameterDeclaration : declarationModifiers . abstractDeclarator -+ -+ LPAREN shift 260 -+ LBRACE shift 259 -+ TIMES shift 40 -+ ID shift 39 -+ EXTERN shift 38 -+ AUTO shift 37 -+ STATIC shift 36 -+ REGISTER shift 35 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPEDEF shift 20 -+ TYPE_NAME shift 19 -+ -+ abstractDeclarator goto 258 -+ directAbstractDeclarator goto 257 -+ pointer goto 256 -+ notypeDeclarator goto 255 -+ notypeDirectDeclarator goto 16 -+ storageClassSpecifier goto 56 -+ typeSpecifier goto 55 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 54 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ structOrUnion goto 2 -+ -+ . error -+ -+ -+state 149: -+ -+ parameterDeclaration : declarationSpecifiers . notypeDeclarator -+ parameterDeclaration : declarationSpecifiers . parmDeclarator -+ parameterDeclaration : declarationSpecifiers . (reduce by rule 241) -+ parameterDeclaration : declarationSpecifiers . abstractDeclarator -+ -+ LPAREN shift 260 -+ LBRACE shift 259 -+ TIMES shift 40 -+ ID shift 39 -+ TYPE_NAME shift 266 -+ -+ abstractDeclarator goto 265 -+ directAbstractDeclarator goto 257 -+ pointer goto 264 -+ notypeDeclarator goto 263 -+ parmDeclarator goto 262 -+ notypeDirectDeclarator goto 16 -+ parmDirectDeclarator goto 261 -+ -+ . reduce by rule 241 -+ -+ -+state 150: -+ -+ identlist : ID . (reduce by rule 216) -+ -+ -+ -+ . reduce by rule 216 -+ -+ -+state 151: -+ -+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN RPAREN . (reduce by rule 201) -+ -+ -+ -+ . reduce by rule 201 -+ -+ -+state 152: -+ -+ enumSpecifier : ENUM TYPE_NAME LCURLY . enumeratorList trailingComma RCURLY -+ -+ ID shift 156 -+ -+ enumeratorList goto 267 -+ enumerator goto 154 -+ -+ . error -+ -+ -+state 153: -+ -+ enumSpecifier : ENUM ID LCURLY . enumeratorList trailingComma RCURLY -+ -+ ID shift 156 -+ -+ enumeratorList goto 268 -+ enumerator goto 154 -+ -+ . error -+ -+ -+state 154: -+ -+ enumeratorList : enumerator . (reduce by rule 160) -+ -+ -+ -+ . reduce by rule 160 -+ -+ -+state 155: -+ -+ enumeratorList : enumeratorList . COMMA enumerator -+ enumSpecifier : ENUM LCURLY enumeratorList . trailingComma RCURLY -+ -+ COMMA shift 270 -+ -+ trailingComma goto 269 -+ -+ . reduce by rule 168 -+ -+ -+state 156: -+ -+ enumerator : ID . (reduce by rule 161) -+ enumerator : ID . EQUALS expr -+ -+ EQUALS shift 271 -+ -+ -+ . reduce by rule 161 -+ -+ -+state 157: -+ -+ pointer : TIMES typeQualifierList pointer . (reduce by rule 189) -+ -+ -+ -+ . reduce by rule 189 -+ -+ -+state 158: -+ -+ typeQualifierList : typeQualifier typeQualifierList . (reduce by rule 117) -+ -+ -+ -+ . reduce by rule 117 -+ -+ -+state 159: -+ -+ notypeDirectDeclarator : LPAREN notypeDeclarator RPAREN . (reduce by rule 198) -+ -+ -+ -+ . reduce by rule 198 -+ -+ -+state 160: -+ -+ structOrUnionSpecifier : structOrUnion TYPE_NAME LCURLY structDeclarationList . RCURLY -+ structDeclarationList : structDeclarationList . structDeclaration -+ -+ RCURLY shift 272 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPE_NAME shift 19 -+ -+ typeSpecifier goto 85 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 76 -+ typeQualifierList goto 84 -+ specifierQualifierList goto 83 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ structOrUnion goto 2 -+ structDeclaration goto 162 -+ -+ . error -+ -+ -+state 161: -+ -+ structOrUnionSpecifier : structOrUnion ID LCURLY structDeclarationList . RCURLY -+ structDeclarationList : structDeclarationList . structDeclaration -+ -+ RCURLY shift 273 -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ TYPE_NAME shift 19 -+ -+ typeSpecifier goto 85 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 76 -+ typeQualifierList goto 84 -+ specifierQualifierList goto 83 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ structOrUnion goto 2 -+ structDeclaration goto 162 -+ -+ . error -+ -+ -+state 162: -+ -+ structDeclarationList : structDeclarationList structDeclaration . (reduce by rule 139) -+ -+ -+ -+ . reduce by rule 139 -+ -+ -+state 163: -+ -+ structOrUnionSpecifier : structOrUnion LCURLY structDeclarationList RCURLY . (reduce by rule 131) -+ -+ -+ -+ . reduce by rule 131 -+ -+ -+state 164: -+ -+ structDeclaratorList : structDeclaratorList . COMMA structDeclarator -+ structDeclaration : specifierQualifierList structDeclaratorList . SEMICOLON -+ -+ SEMICOLON shift 275 -+ COMMA shift 274 -+ -+ -+ . error -+ -+ -+state 165: -+ -+ structDeclaratorList : structDeclarator . (reduce by rule 142) -+ -+ -+ -+ . reduce by rule 142 -+ -+ -+state 166: -+ -+ structDeclarator : declarator . (reduce by rule 146) -+ structDeclarator : declarator . COLON expr -+ -+ COLON shift 276 -+ -+ -+ . reduce by rule 146 -+ -+ -+state 167: -+ -+ structDeclarator : COLON . expr -+ -+ LPAREN shift 124 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ SIZEOF shift 99 -+ -+ expr goto 277 -+ unaryOperator goto 92 -+ strings goto 90 -+ -+ . error -+ -+ -+state 168: -+ -+ notypeStructDeclaratorList : notypeStructDeclaratorList . COMMA structDeclarator -+ structDeclaration : typeQualifierList notypeStructDeclaratorList . SEMICOLON -+ -+ SEMICOLON shift 279 -+ COMMA shift 278 -+ -+ -+ . error -+ -+ -+state 169: -+ -+ notypeStructDeclaratorList : notypeStructDeclarator . (reduce by rule 144) -+ -+ -+ -+ . reduce by rule 144 -+ -+ -+state 170: -+ -+ specifierQualifierList : typeQualifierList typeSpecifier . reservedSpecifierQualifiers -+ -+ -+ reservedSpecifierQualifiers goto 280 -+ -+ . reduce by rule 114 -+ -+ -+state 171: -+ -+ notypeStructDeclarator : notypeDeclarator . (reduce by rule 149) -+ notypeStructDeclarator : notypeDeclarator . COLON expr -+ -+ COLON shift 281 -+ -+ -+ . reduce by rule 149 -+ -+ -+state 172: -+ -+ notypeStructDeclarator : COLON . expr -+ -+ LPAREN shift 124 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 142 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ SIZEOF shift 99 -+ -+ expr goto 282 -+ unaryOperator goto 92 -+ strings goto 90 -+ -+ . error -+ -+ -+state 173: -+ -+ reservedSpecifierQualifiers : reservedSpecifierQualifiers . specifierQualifierReserved -+ specifierQualifierList : typeSpecifier reservedSpecifierQualifiers . (reduce by rule 112) -+ -+ CONST shift 34 -+ VOLATILE shift 33 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ -+ specifierQualifierReserved goto 283 -+ typeSpecifierReserved goto 129 -+ typeQualifier goto 128 -+ enumSpecifier goto 127 -+ structOrUnionSpecifier goto 126 -+ structOrUnion goto 2 -+ -+ . reduce by rule 112 -+ -+ -+state 174: -+ -+ compoundStatement : LCURLY pushScope declarationList . ostatementlist popScope RCURLY -+ declarationList : declarationList . declaration -+ -+ SEMICOLON shift 125 -+ LPAREN shift 124 -+ LCURLY shift 52 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC shift 116 -+ ID shift 115 -+ DECNUM shift 114 -+ REALNUM shift 113 -+ STRING shift 112 -+ CCONST shift 111 -+ EXTERN shift 38 -+ AUTO shift 37 -+ STATIC shift 36 -+ REGISTER shift 35 -+ CONST shift 34 -+ VOLATILE shift 33 -+ IF shift 110 -+ FOR shift 109 -+ DO shift 108 -+ SWITCH shift 107 -+ CASE shift 106 -+ DEFAULT shift 105 -+ WHILE shift 104 -+ RETURN shift 103 -+ BREAK shift 102 -+ CONTINUE shift 101 -+ GOTO shift 100 -+ CHAR shift 32 -+ DOUBLE shift 31 -+ ENUM shift 30 -+ FLOAT shift 29 -+ INT shift 28 -+ LONG shift 27 -+ SHORT shift 26 -+ STRUCT shift 25 -+ UNION shift 24 -+ UNSIGNED shift 23 -+ SIGNED shift 22 -+ VOID shift 21 -+ SIZEOF shift 99 -+ TYPEDEF shift 20 -+ TYPE_NAME shift 19 -+ -+ statement goto 98 -+ ostatementlist goto 284 -+ statementlist goto 96 -+ compoundStatement goto 95 -+ expr goto 94 -+ exprWComma goto 93 -+ unaryOperator goto 92 -+ declarationSpecifiers goto 50 -+ declarationModifiers goto 49 -+ storageClassSpecifier goto 13 -+ typeSpecifier goto 12 -+ typeSpecifierReserved goto 11 -+ typeQualifier goto 10 -+ enumSpecifier goto 9 -+ structOrUnionSpecifier goto 8 -+ declaration goto 86 -+ declaration1 goto 4 -+ structOrUnion goto 2 -+ strings goto 90 -+ -+ . reduce by rule 27 -+ -+ -+state 175: -+ -+ expr : expr . QUESTION exprWComma COLON expr -+ expr : expr . PLUSEQUALS expr -+ expr : expr . MINUSEQUALS expr -+ expr : expr . TIMESEQUALS expr -+ expr : expr . DIVEQUALS expr -+ expr : expr . MODEQUALS expr -+ expr : expr . XOREQUALS expr -+ expr : expr . OREQUALS expr -+ expr : expr . ANDEQUALS expr -+ expr : expr . LSHIFTEQUALS expr -+ expr : expr . RSHIFTEQUALS expr -+ expr : expr . EQUALS expr -+ expr : expr . OR expr -+ expr : expr . AND expr -+ expr : expr . BAR expr -+ expr : expr . HAT expr -+ expr : expr . AMP expr -+ expr : expr . EQ expr -+ expr : expr . NEQ expr -+ expr : expr . LT expr -+ expr : expr . GT expr -+ expr : expr . LTE expr -+ expr : expr . GTE expr -+ expr : expr . LSHIFT expr -+ expr : expr . RSHIFT expr -+ expr : expr . PLUS expr -+ expr : expr . MINUS expr -+ expr : expr . TIMES expr -+ expr : expr . DIVIDE expr -+ expr : expr . PERCENT expr -+ expr : expr . INC -+ expr : expr . DEC -+ expr : unaryOperator expr . (reduce by rule 72) -+ expr : expr . LBRACE exprWComma RBRACE -+ expr : expr . LPAREN RPAREN -+ expr : expr . LPAREN argumentExprList RPAREN -+ expr : expr . DOT ID -+ expr : expr . ARROW ID -+ expr : expr . DOT TYPE_NAME -+ expr : expr . ARROW TYPE_NAME -+ -+ LPAREN shift 213 -+ LBRACE shift 212 -+ DOT shift 211 -+ INC shift 201 -+ DEC shift 200 -+ ARROW shift 199 -+ -+ -+ . reduce by rule 72 -+ -+ -+state 176: -+ -+ exprWComma : exprWComma COMMA . expr -+ -+ LPAREN shift 124 -+ AMP shift 123 -+ TILDE shift 122 -+ PLUS shift 121 -+ MINUS shift 120 -+ BANG shift 119 -+ TIMES shift 118 -+ INC shift 117 -+ DEC ... [truncated message content] |
From: Matthew F. <fl...@ml...> - 2005-11-19 11:46:27
|
Typo in map for cml ---------------------------------------------------------------------- U mlton/trunk/util/cm2mlb/cm2mlb-map ---------------------------------------------------------------------- Modified: mlton/trunk/util/cm2mlb/cm2mlb-map =================================================================== --- mlton/trunk/util/cm2mlb/cm2mlb-map 2005-11-19 19:03:27 UTC (rev 4244) +++ mlton/trunk/util/cm2mlb/cm2mlb-map 2005-11-19 19:46:26 UTC (rev 4245) @@ -5,7 +5,7 @@ $ml-yacc-lib.cm/ml-yacc-lib.cm $(SML_LIB)/mlyacc-lib/mlyacc-lib.mlb $cml $(SML_LIB)/cml -$cml/cml.mlb $(SML_LIB)/cml/cml.mlb +$cml/cml.cm $(SML_LIB)/cml/cml.mlb $c $(SML_LIB)/mlnlffi-lib $c/c.cm $(SML_LIB)/mlnlffi-lib/mlnlffi-lib.mlb |
From: Matthew F. <fl...@ml...> - 2005-11-19 11:03:48
|
Updated SML/NJ Library and CKit Library from SML/NJ 110.57; they fixed some outstanding Basis Library deviations, which yields a smaller patch. ---------------------------------------------------------------------- U mlton/trunk/doc/changelog U mlton/trunk/lib/ckit-lib/Makefile U mlton/trunk/lib/ckit-lib/ckit.patch U mlton/trunk/lib/ckit-lib/ckit.tgz U mlton/trunk/lib/smlnj-lib/Makefile U mlton/trunk/lib/smlnj-lib/smlnj-lib.patch U mlton/trunk/lib/smlnj-lib/smlnj-lib.tgz ---------------------------------------------------------------------- Modified: mlton/trunk/doc/changelog =================================================================== --- mlton/trunk/doc/changelog 2005-11-19 18:48:43 UTC (rev 4243) +++ mlton/trunk/doc/changelog 2005-11-19 19:03:27 UTC (rev 4244) @@ -1,5 +1,8 @@ Here are the changes since version 20041109. +* 2005-11-19 + - Updated SML/NJ Library and CKit Library from SML/NJ 110.57. + * 2005-11-15 - Fixed a bug in MLton.ProcEnv.setgroups. Modified: mlton/trunk/lib/ckit-lib/Makefile =================================================================== --- mlton/trunk/lib/ckit-lib/Makefile 2005-11-19 18:48:43 UTC (rev 4243) +++ mlton/trunk/lib/ckit-lib/Makefile 2005-11-19 19:03:27 UTC (rev 4244) @@ -11,7 +11,6 @@ ckit/README.mlton: ckit.tgz ckit.patch gzip -dc ckit.tgz | tar xf - patch -p0 < ckit.patch - chmod a-x ckit/src/ast/simplify-assign-ops.sml .PHONY: clean clean: Modified: mlton/trunk/lib/ckit-lib/ckit.patch =================================================================== --- mlton/trunk/lib/ckit-lib/ckit.patch 2005-11-19 18:48:43 UTC (rev 4243) +++ mlton/trunk/lib/ckit-lib/ckit.patch 2005-11-19 19:03:27 UTC (rev 4244) @@ -1,11 +1,11 @@ diff -Naur ckit/ckit-lib.mlb ckit-mlton/ckit-lib.mlb --- ckit/ckit-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ ckit-mlton/ckit-lib.mlb 2005-08-18 12:21:04.000000000 -0400 ++++ ckit-mlton/ckit-lib.mlb 2005-08-18 09:31:14.000000000 -0400 @@ -0,0 +1 @@ +src/ckit-lib.mlb diff -Naur ckit/README.mlton ckit-mlton/README.mlton --- ckit/README.mlton 1969-12-31 19:00:00.000000000 -0500 -+++ ckit-mlton/README.mlton 2005-08-18 12:21:04.000000000 -0400 ++++ ckit-mlton/README.mlton 2005-08-17 19:41:36.000000000 -0400 @@ -0,0 +1,13 @@ +The following changes were made to the ckit Library, in addition to +deriving the {{{.mlb}}} file from the {{{.cm}}} files: @@ -22,7 +22,7 @@ + * {{{ast/build-ast.sml}}} (modified): Rewrote use of ''or-patterns''. diff -Naur ckit/src/ast/ast-sig.sml ckit-mlton/src/ast/ast-sig.sml --- ckit/src/ast/ast-sig.sml 2001-10-31 15:22:41.000000000 -0500 -+++ ckit-mlton/src/ast/ast-sig.sml 2005-08-18 12:21:04.000000000 -0400 ++++ ckit-mlton/src/ast/ast-sig.sml 2005-08-17 19:41:36.000000000 -0400 @@ -67,7 +67,12 @@ datatype declaration = TypeDecl of {shadow: {strct:bool} option, tid:tid} @@ -99,7 +99,7 @@ location : SourceMap.location, diff -Naur ckit/src/ast/build-ast.sml ckit-mlton/src/ast/build-ast.sml --- ckit/src/ast/build-ast.sml 2003-08-28 17:58:39.000000000 -0400 -+++ ckit-mlton/src/ast/build-ast.sml 2005-08-18 12:21:05.000000000 -0400 ++++ ckit-mlton/src/ast/build-ast.sml 2005-08-17 19:41:36.000000000 -0400 @@ -290,7 +290,8 @@ of SOME{ntype=NONE,...} => true | _ => false @@ -225,7 +225,7 @@ else if repeated_declarations_ok diff -Naur ckit/src/ast/initializer-normalizer.sml ckit-mlton/src/ast/initializer-normalizer.sml --- ckit/src/ast/initializer-normalizer.sml 2003-08-28 17:58:39.000000000 -0400 -+++ ckit-mlton/src/ast/initializer-normalizer.sml 2005-08-18 12:21:05.000000000 -0400 ++++ ckit-mlton/src/ast/initializer-normalizer.sml 2005-08-17 19:41:36.000000000 -0400 @@ -156,7 +156,13 @@ feed (unionNorm (ctype, fields), inits) | SOME _ => fail "Incomplete type for union ref" @@ -243,7 +243,7 @@ | Ast.Ellipses => fail "Cannot initialize ellipses" diff -Naur ckit/src/ast/pp/pp-ast-adornment-sig.sml ckit-mlton/src/ast/pp/pp-ast-adornment-sig.sml --- ckit/src/ast/pp/pp-ast-adornment-sig.sml 2000-04-05 14:34:56.000000000 -0400 -+++ ckit-mlton/src/ast/pp/pp-ast-adornment-sig.sml 2005-08-18 12:21:05.000000000 -0400 ++++ ckit-mlton/src/ast/pp/pp-ast-adornment-sig.sml 2005-08-17 19:41:36.000000000 -0400 @@ -1,14 +1,14 @@ (* Copyright (c) 1998 by Lucent Technologies *) @@ -264,7 +264,7 @@ +(* end *) diff -Naur ckit/src/ast/pp/pp-ast-ext-sig.sml ckit-mlton/src/ast/pp/pp-ast-ext-sig.sml --- ckit/src/ast/pp/pp-ast-ext-sig.sml 2000-04-05 14:34:56.000000000 -0400 -+++ ckit-mlton/src/ast/pp/pp-ast-ext-sig.sml 2005-08-18 12:21:05.000000000 -0400 ++++ ckit-mlton/src/ast/pp/pp-ast-ext-sig.sml 2005-08-17 19:41:36.000000000 -0400 @@ -1,13 +1,13 @@ (* Copyright (c) 1998 by Lucent Technologies *) @@ -289,7 +289,7 @@ +(* end *) diff -Naur ckit/src/ast/pp/pp-lib.sml ckit-mlton/src/ast/pp/pp-lib.sml --- ckit/src/ast/pp/pp-lib.sml 2000-04-05 14:34:57.000000000 -0400 -+++ ckit-mlton/src/ast/pp/pp-lib.sml 2005-08-18 12:21:05.000000000 -0400 ++++ ckit-mlton/src/ast/pp/pp-lib.sml 2005-08-17 19:41:36.000000000 -0400 @@ -115,7 +115,10 @@ fun ppId pps ({name,uid,kind,stClass,global,...}: Ast.id) = @@ -304,7 +304,7 @@ | _ => ppSymbol pps (name,uid) diff -Naur ckit/src/ast/sizeof.sml ckit-mlton/src/ast/sizeof.sml --- ckit/src/ast/sizeof.sml 2000-04-05 14:34:55.000000000 -0400 -+++ ckit-mlton/src/ast/sizeof.sml 2005-08-18 12:21:05.000000000 -0400 ++++ ckit-mlton/src/ast/sizeof.sml 2005-08-17 19:41:36.000000000 -0400 @@ -321,7 +321,9 @@ and process (sizesErrWarnBug as {sizes, err, warn, bug}) tidtab ty = case ty @@ -318,7 +318,7 @@ let val {bits,align} = #int sizes diff -Naur ckit/src/ast/type-util-sig.sml ckit-mlton/src/ast/type-util-sig.sml --- ckit/src/ast/type-util-sig.sml 2001-10-31 15:22:41.000000000 -0500 -+++ ckit-mlton/src/ast/type-util-sig.sml 2005-08-18 12:21:05.000000000 -0400 ++++ ckit-mlton/src/ast/type-util-sig.sml 2005-08-17 19:41:36.000000000 -0400 @@ -1,10 +1,10 @@ (* Copyright (c) 1998 by Lucent Technologies *) @@ -340,7 +340,7 @@ +(* end (* local *) *) diff -Naur ckit/src/ast/type-util.sml ckit-mlton/src/ast/type-util.sml --- ckit/src/ast/type-util.sml 2001-10-31 15:22:41.000000000 -0500 -+++ ckit-mlton/src/ast/type-util.sml 2005-08-18 12:21:05.000000000 -0400 ++++ ckit-mlton/src/ast/type-util.sml 2005-08-17 19:41:36.000000000 -0400 @@ -282,7 +282,8 @@ fun isStructOrUnion tidtab ty = case reduceTypedef tidtab ty @@ -393,7 +393,7 @@ ) diff -Naur ckit/src/ckit-lib.mlb ckit-mlton/src/ckit-lib.mlb --- ckit/src/ckit-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ ckit-mlton/src/ckit-lib.mlb 2005-08-18 12:21:05.000000000 -0400 ++++ ckit-mlton/src/ckit-lib.mlb 2005-11-19 13:53:37.000000000 -0500 @@ -0,0 +1,876 @@ + +ann @@ -1273,7 +1273,7 @@ +end diff -Naur ckit/src/parser/grammar/c.grm.desc ckit-mlton/src/parser/grammar/c.grm.desc --- ckit/src/parser/grammar/c.grm.desc 1969-12-31 19:00:00.000000000 -0500 -+++ ckit-mlton/src/parser/grammar/c.grm.desc 2005-08-18 12:23:58.000000000 -0400 ++++ ckit-mlton/src/parser/grammar/c.grm.desc 2005-11-19 13:53:36.000000000 -0500 @@ -0,0 +1,10001 @@ +1 shift/reduce conflict + @@ -11278,7 +11278,7 @@ +712 goto table entries diff -Naur ckit/src/parser/grammar/c.grm.sig ckit-mlton/src/parser/grammar/c.grm.sig --- ckit/src/parser/grammar/c.grm.sig 1969-12-31 19:00:00.000000000 -0500 -+++ ckit-mlton/src/parser/grammar/c.grm.sig 2005-08-18 12:23:58.000000000 -0400 ++++ ckit-mlton/src/parser/grammar/c.grm.sig 2005-11-19 13:53:36.000000000 -0500 @@ -0,0 +1,101 @@ +signature C_TOKENS = +sig @@ -11383,7 +11383,7 @@ +end diff -Naur ckit/src/parser/grammar/c.grm.sml ckit-mlton/src/parser/grammar/c.grm.sml --- ckit/src/parser/grammar/c.grm.sml 1969-12-31 19:00:00.000000000 -0500 -+++ ckit-mlton/src/parser/grammar/c.grm.sml 2005-08-18 12:23:58.000000000 -0400 ++++ ckit-mlton/src/parser/grammar/c.grm.sml 2005-11-19 13:53:36.000000000 -0500 @@ -0,0 +1,3866 @@ +functor LrValsFun(structure Token : TOKEN + ) = @@ -15253,7 +15253,7 @@ +end diff -Naur ckit/src/parser/grammar/c.lex.sml ckit-mlton/src/parser/grammar/c.lex.sml --- ckit/src/parser/grammar/c.lex.sml 1969-12-31 19:00:00.000000000 -0500 -+++ ckit-mlton/src/parser/grammar/c.lex.sml 2005-08-18 12:23:55.000000000 -0400 ++++ ckit-mlton/src/parser/grammar/c.lex.sml 2005-11-19 13:53:36.000000000 -0500 @@ -0,0 +1,1053 @@ +type int = Int.int +functor CLexFun(structure Tokens : C_TOKENS @@ -16310,7 +16310,7 @@ +end diff -Naur ckit/src/parser/parse-tree-sig.sml ckit-mlton/src/parser/parse-tree-sig.sml --- ckit/src/parser/parse-tree-sig.sml 2000-04-05 14:35:01.000000000 -0400 -+++ ckit-mlton/src/parser/parse-tree-sig.sml 2005-08-18 12:21:05.000000000 -0400 ++++ ckit-mlton/src/parser/parse-tree-sig.sml 2005-08-17 19:41:36.000000000 -0400 @@ -27,8 +27,10 @@ | ModAssign | XorAssign | OrAssign | AndAssign | LshiftAssign | RshiftAssign @@ -16469,7 +16469,7 @@ and declarationExt = diff -Naur ckit/src/parser/parse-tree.sml ckit-mlton/src/parser/parse-tree.sml --- ckit/src/parser/parse-tree.sml 2000-04-05 14:35:01.000000000 -0400 -+++ ckit-mlton/src/parser/parse-tree.sml 2005-08-18 12:21:05.000000000 -0400 ++++ ckit-mlton/src/parser/parse-tree.sml 2005-08-17 19:41:36.000000000 -0400 @@ -23,8 +23,10 @@ | ModAssign | XorAssign | OrAssign | AndAssign | LshiftAssign | RshiftAssign Modified: mlton/trunk/lib/ckit-lib/ckit.tgz =================================================================== (Binary files differ) Modified: mlton/trunk/lib/smlnj-lib/Makefile =================================================================== --- mlton/trunk/lib/smlnj-lib/Makefile 2005-11-19 18:48:43 UTC (rev 4243) +++ mlton/trunk/lib/smlnj-lib/Makefile 2005-11-19 19:03:27 UTC (rev 4244) @@ -11,7 +11,6 @@ smlnj-lib/README.mlton: smlnj-lib.tgz smlnj-lib.patch gzip -dc smlnj-lib.tgz | tar xf - patch -p0 < smlnj-lib.patch - rm smlnj-lib/HTML/.cvsignore mv smlnj-lib/LICENSE ../../doc/license/SMLNJ-LIB-LICENSE .PHONY: clean Modified: mlton/trunk/lib/smlnj-lib/smlnj-lib.patch =================================================================== --- mlton/trunk/lib/smlnj-lib/smlnj-lib.patch 2005-11-19 18:48:43 UTC (rev 4243) +++ mlton/trunk/lib/smlnj-lib/smlnj-lib.patch 2005-11-19 19:03:27 UTC (rev 4244) @@ -1,6 +1,6 @@ diff -Naur smlnj-lib/Controls/controls-lib.mlb smlnj-lib-mlton/Controls/controls-lib.mlb --- smlnj-lib/Controls/controls-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/Controls/controls-lib.mlb 2005-08-18 12:18:11.000000000 -0400 ++++ smlnj-lib-mlton/Controls/controls-lib.mlb 2005-11-19 13:58:31.000000000 -0500 @@ -0,0 +1,170 @@ + +ann @@ -174,7 +174,7 @@ +end diff -Naur smlnj-lib/HashCons/hash-cons-lib.mlb smlnj-lib-mlton/HashCons/hash-cons-lib.mlb --- smlnj-lib/HashCons/hash-cons-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/HashCons/hash-cons-lib.mlb 2005-08-18 12:18:12.000000000 -0400 ++++ smlnj-lib-mlton/HashCons/hash-cons-lib.mlb 2005-11-19 13:58:31.000000000 -0500 @@ -0,0 +1,144 @@ + +ann @@ -320,22 +320,9 @@ +end + +end -diff -Naur smlnj-lib/HTML/deviations.sml smlnj-lib-mlton/HTML/deviations.sml ---- smlnj-lib/HTML/deviations.sml 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/HTML/deviations.sml 2005-08-17 20:23:34.000000000 -0400 -@@ -0,0 +1,9 @@ -+structure Substring : -+ sig -+ include SUBSTRING -+ val all : string -> substring -+ end = -+ struct -+ open Substring -+ val all = full -+ end diff -Naur smlnj-lib/HTML/html-attrs-fn.sml smlnj-lib-mlton/HTML/html-attrs-fn.sml ---- smlnj-lib/HTML/html-attrs-fn.sml 2003-05-22 18:46:30.000000000 -0400 -+++ smlnj-lib-mlton/HTML/html-attrs-fn.sml 2005-08-17 20:23:34.000000000 -0400 +--- smlnj-lib/HTML/html-attrs-fn.sml 2004-11-20 10:28:05.000000000 -0500 ++++ smlnj-lib-mlton/HTML/html-attrs-fn.sml 2005-08-17 20:13:04.000000000 -0400 @@ -89,19 +89,24 @@ fun error () = ( Err.badAttrVal ctx (attrName, attrValToString attrVal); @@ -435,7 +422,7 @@ end diff -Naur smlnj-lib/HTML/html-cons-lib.mlb smlnj-lib-mlton/HTML/html-cons-lib.mlb --- smlnj-lib/HTML/html-cons-lib.mlb 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/HTML/html-cons-lib.mlb 2005-08-17 20:23:34.000000000 -0400 ++++ smlnj-lib-mlton/HTML/html-cons-lib.mlb 2005-08-17 20:13:04.000000000 -0400 @@ -0,0 +1,9 @@ + +ann @@ -447,8 +434,8 @@ + +end diff -Naur smlnj-lib/HTML/html-elements-fn.sml smlnj-lib-mlton/HTML/html-elements-fn.sml ---- smlnj-lib/HTML/html-elements-fn.sml 2000-06-01 14:33:54.000000000 -0400 -+++ smlnj-lib-mlton/HTML/html-elements-fn.sml 2005-08-17 20:23:34.000000000 -0400 +--- smlnj-lib/HTML/html-elements-fn.sml 2005-11-17 15:53:08.000000000 -0500 ++++ smlnj-lib-mlton/HTML/html-elements-fn.sml 2005-11-17 15:55:26.000000000 -0500 @@ -144,7 +144,8 @@ * 3) a string literal enclosed in '' *) @@ -459,9370 +446,377 @@ | isNameChar c = (Char.isAlphaNum c) in case SS.getc ss -diff -Naur smlnj-lib/HTML/html-gram.desc smlnj-lib-mlton/HTML/html-gram.desc ---- smlnj-lib/HTML/html-gram.desc 1969-12-31 19:00:00.000000000 -0500 -+++ smlnj-lib-mlton/HTML/html-gram.desc 2005-08-18 12:09:03.000000000 -0400 -@@ -0,0 +1,6055 @@ -+ -+state 0: -+ -+ Document : . StartHTML Head Body EndHTML -+ -+ START_HTML shift 2 -+ -+ Document goto 282 -+ StartHTML goto 1 -+ -+ . reduce by rule 1 -+ -+ -+state 1: -+ -+ Document : StartHTML . Head Body EndHTML -+ -+ START_HEAD shift 5 -+ -+ Head goto 4 -+ StartHEAD goto 3 -+ -+ . reduce by rule 6 -+ -+ -+state 2: -+ -+ StartHTML : START_HTML . (reduce by rule 2) -+ -+ -+ -+ . reduce by rule 2 -+ -+ -+state 3: -+ -+ Head : StartHEAD . HeadContents EndHEAD -+ -+ TAG_BASE shift 14 -+ TAG_ISINDEX shift 13 -+ TAG_LINK shift 12 -+ TAG_META shift 11 -+ START_SCRIPT shift 10 -+ START_STYLE shift 9 -+ -+ HeadContents goto 8 -+ HeadElements goto 7 -+ HeadElement goto 6 -+ -+ . reduce by rule 11 -+ -+ -+state 4: -+ -+ Document : StartHTML Head . Body EndHTML -+ -+ START_A shift 79 -+ START_ADDRESS shift 78 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ START_BLOCKQUOTE shift 74 -+ START_BODY shift 73 -+ TAG_BR shift 72 -+ START_CENTER shift 71 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_DIR shift 67 -+ START_DIV shift 66 -+ START_DL shift 65 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_FORM shift 61 -+ START_H1 shift 60 -+ START_H2 shift 59 -+ START_H3 shift 58 -+ START_H4 shift 57 -+ START_H5 shift 56 -+ START_H6 shift 55 -+ TAG_HR shift 54 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ START_MENU shift 48 -+ START_OL shift 47 -+ START_P shift 46 -+ TAG_PARAM shift 45 -+ START_PRE shift 44 -+ START_SAMP shift 43 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TABLE shift 36 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_UL shift 32 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ Body goto 27 -+ BodyContent0 goto 26 -+ BodyElement goto 25 -+ BlockWOIndex goto 24 -+ Paragraph goto 23 -+ List goto 22 -+ Preformatted goto 21 -+ TextWOScript goto 20 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . error -+ -+ -+state 5: -+ -+ StartHEAD : START_HEAD . (reduce by rule 7) -+ -+ -+ -+ . reduce by rule 7 -+ -+ -+state 6: -+ -+ HeadElements : HeadElement . HeadElements -+ -+ TAG_BASE shift 14 -+ TAG_ISINDEX shift 13 -+ TAG_LINK shift 12 -+ TAG_META shift 11 -+ START_SCRIPT shift 10 -+ START_STYLE shift 9 -+ -+ HeadElements goto 80 -+ HeadElement goto 6 -+ -+ . reduce by rule 11 -+ -+ -+state 7: -+ -+ HeadContents : HeadElements . START_TITLE PCData END_TITLE HeadElements -+ -+ START_TITLE shift 81 -+ -+ -+ . error -+ -+ -+state 8: -+ -+ Head : StartHEAD HeadContents . EndHEAD -+ -+ END_HEAD shift 83 -+ -+ EndHEAD goto 82 -+ -+ . reduce by rule 8 -+ -+ -+state 9: -+ -+ HeadElement : START_STYLE . PCData END_STYLE -+ -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ PCData goto 86 -+ PCDataList goto 85 -+ PCDataElem goto 84 -+ -+ . reduce by rule 150 -+ -+ -+state 10: -+ -+ HeadElement : START_SCRIPT . PCData END_SCRIPT -+ -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ PCData goto 87 -+ PCDataList goto 85 -+ PCDataElem goto 84 -+ -+ . reduce by rule 150 -+ -+ -+state 11: -+ -+ HeadElement : TAG_META . (reduce by rule 13) -+ -+ -+ -+ . reduce by rule 13 -+ -+ -+state 12: -+ -+ HeadElement : TAG_LINK . (reduce by rule 14) -+ -+ -+ -+ . reduce by rule 14 -+ -+ -+state 13: -+ -+ HeadElement : TAG_ISINDEX . (reduce by rule 15) -+ -+ -+ -+ . reduce by rule 15 -+ -+ -+state 14: -+ -+ HeadElement : TAG_BASE . (reduce by rule 16) -+ -+ -+ -+ . reduce by rule 16 -+ -+ -+state 15: -+ -+ TextWOScript : PCDataElem . (reduce by rule 108) -+ -+ -+ -+ . reduce by rule 108 -+ -+ -+state 16: -+ -+ TextWOScript : Form . (reduce by rule 112) -+ -+ -+ -+ . reduce by rule 112 -+ -+ -+state 17: -+ -+ TextWOScript : Special . (reduce by rule 111) -+ -+ -+ -+ . reduce by rule 111 -+ -+ -+state 18: -+ -+ TextWOScript : Phrase . (reduce by rule 110) -+ -+ -+ -+ . reduce by rule 110 -+ -+ -+state 19: -+ -+ TextWOScript : Font . (reduce by rule 109) -+ -+ -+ -+ . reduce by rule 109 -+ -+ -+state 20: -+ -+ BodyContent0 : TextWOScript . BodyContent1 -+ -+ START_A shift 79 -+ START_ADDRESS shift 78 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ START_BLOCKQUOTE shift 74 -+ TAG_BR shift 72 -+ START_CENTER shift 71 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_DIR shift 67 -+ START_DIV shift 66 -+ START_DL shift 65 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_FORM shift 61 -+ START_H1 shift 60 -+ START_H2 shift 59 -+ START_H3 shift 58 -+ START_H4 shift 57 -+ START_H5 shift 56 -+ START_H6 shift 55 -+ TAG_HR shift 54 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ TAG_ISINDEX shift 96 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ START_MENU shift 48 -+ START_OL shift 47 -+ START_P shift 46 -+ TAG_PARAM shift 45 -+ START_PRE shift 44 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TABLE shift 36 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_UL shift 32 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ BodyContent1 goto 94 -+ BodyElement goto 93 -+ BlockWOIndex goto 92 -+ Block goto 91 -+ Paragraph goto 90 -+ List goto 22 -+ Preformatted goto 21 -+ TextWOScript goto 89 -+ Text goto 88 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 29 -+ -+ -+state 21: -+ -+ BlockWOIndex : Preformatted . (reduce by rule 55) -+ -+ -+ -+ . reduce by rule 55 -+ -+ -+state 22: -+ -+ BlockWOIndex : List . (reduce by rule 54) -+ -+ -+ -+ . reduce by rule 54 -+ -+ -+state 23: -+ -+ BodyContent0 : Paragraph . END_P BodyContent1 -+ BodyContent0 : Paragraph . BodyContent2 -+ -+ START_ADDRESS shift 78 -+ START_BLOCKQUOTE shift 74 -+ START_CENTER shift 71 -+ START_DIR shift 67 -+ START_DIV shift 66 -+ START_DL shift 65 -+ START_FORM shift 61 -+ START_H1 shift 60 -+ START_H2 shift 59 -+ START_H3 shift 58 -+ START_H4 shift 57 -+ START_H5 shift 56 -+ START_H6 shift 55 -+ TAG_HR shift 54 -+ TAG_ISINDEX shift 96 -+ START_MENU shift 48 -+ START_OL shift 47 -+ START_P shift 46 -+ END_P shift 101 -+ START_PRE shift 44 -+ START_TABLE shift 36 -+ START_UL shift 32 -+ -+ BodyContent2 goto 100 -+ BodyElement goto 99 -+ BlockWOIndex goto 92 -+ Block goto 98 -+ Paragraph goto 97 -+ List goto 22 -+ Preformatted goto 21 -+ -+ . reduce by rule 35 -+ -+ -+state 24: -+ -+ BodyContent0 : BlockWOIndex . BodyContent1 -+ -+ START_A shift 79 -+ START_ADDRESS shift 78 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ START_BLOCKQUOTE shift 74 -+ TAG_BR shift 72 -+ START_CENTER shift 71 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_DIR shift 67 -+ START_DIV shift 66 -+ START_DL shift 65 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_FORM shift 61 -+ START_H1 shift 60 -+ START_H2 shift 59 -+ START_H3 shift 58 -+ START_H4 shift 57 -+ START_H5 shift 56 -+ START_H6 shift 55 -+ TAG_HR shift 54 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ TAG_ISINDEX shift 96 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ START_MENU shift 48 -+ START_OL shift 47 -+ START_P shift 46 -+ TAG_PARAM shift 45 -+ START_PRE shift 44 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TABLE shift 36 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_UL shift 32 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ BodyContent1 goto 102 -+ BodyElement goto 93 -+ BlockWOIndex goto 92 -+ Block goto 91 -+ Paragraph goto 90 -+ List goto 22 -+ Preformatted goto 21 -+ TextWOScript goto 89 -+ Text goto 88 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 29 -+ -+ -+state 25: -+ -+ BodyContent0 : BodyElement . BodyContent1 -+ -+ START_A shift 79 -+ START_ADDRESS shift 78 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ START_BLOCKQUOTE shift 74 -+ TAG_BR shift 72 -+ START_CENTER shift 71 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_DIR shift 67 -+ START_DIV shift 66 -+ START_DL shift 65 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_FORM shift 61 -+ START_H1 shift 60 -+ START_H2 shift 59 -+ START_H3 shift 58 -+ START_H4 shift 57 -+ START_H5 shift 56 -+ START_H6 shift 55 -+ TAG_HR shift 54 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ TAG_ISINDEX shift 96 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ START_MENU shift 48 -+ START_OL shift 47 -+ START_P shift 46 -+ TAG_PARAM shift 45 -+ START_PRE shift 44 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TABLE shift 36 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_UL shift 32 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ BodyContent1 goto 103 -+ BodyElement goto 93 -+ BlockWOIndex goto 92 -+ Block goto 91 -+ Paragraph goto 90 -+ List goto 22 -+ Preformatted goto 21 -+ TextWOScript goto 89 -+ Text goto 88 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 29 -+ -+ -+state 26: -+ -+ Body : BodyContent0 . EndBODY -+ -+ END_BODY shift 105 -+ -+ EndBODY goto 104 -+ -+ . reduce by rule 20 -+ -+ -+state 27: -+ -+ Document : StartHTML Head Body . EndHTML -+ -+ END_HTML shift 107 -+ -+ EndHTML goto 106 -+ -+ . reduce by rule 3 -+ -+ -+state 28: -+ -+ PCDataElem : ENTITY_REF . (reduce by rule 154) -+ -+ -+ -+ . reduce by rule 154 -+ -+ -+state 29: -+ -+ PCDataElem : CHAR_REF . (reduce by rule 153) -+ -+ -+ -+ . reduce by rule 153 -+ -+ -+state 30: -+ -+ PCDataElem : PCDATA . (reduce by rule 152) -+ -+ -+ -+ . reduce by rule 152 -+ -+ -+state 31: -+ -+ Phrase : START_VAR . TextList END_VAR -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 110 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 32: -+ -+ List : START_UL . ListItemList END_UL -+ -+ START_LI shift 113 -+ -+ ListItemList goto 112 -+ ListItem goto 111 -+ -+ . reduce by rule 70 -+ -+ -+state 33: -+ -+ Font : START_U . TextList END_U -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 114 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 34: -+ -+ Font : START_TT . TextList END_TT -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 115 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 35: -+ -+ Form : START_TEXTAREA . PCData END_TEXTAREA -+ -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ PCData goto 116 -+ PCDataList goto 85 -+ PCDataElem goto 84 -+ -+ . reduce by rule 150 -+ -+ -+state 36: -+ -+ BlockWOIndex : START_TABLE . optCaption TableRowList END_TABLE -+ -+ START_CAPTION shift 118 -+ -+ optCaption goto 117 -+ -+ . reduce by rule 93 -+ -+ -+state 37: -+ -+ Font : START_SUP . TextList END_SUP -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 119 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 38: -+ -+ Font : START_SUB . TextList END_SUB -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 120 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 39: -+ -+ Phrase : START_STRONG . TextList END_STRONG -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 121 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 40: -+ -+ Font : START_STRIKE . TextList END_STRIKE -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 122 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 41: -+ -+ Font : START_SMALL . TextList END_SMALL -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 123 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 42: -+ -+ Form : START_SELECT . OptionList END_SELECT -+ -+ START_OPTION shift 125 -+ -+ OptionList goto 124 -+ -+ . reduce by rule 145 -+ -+ -+state 43: -+ -+ Phrase : START_SAMP . TextList END_SAMP -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 126 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 44: -+ -+ Preformatted : START_PRE . TextList END_PRE -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 127 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 45: -+ -+ Special : TAG_PARAM . (reduce by rule 139) -+ -+ -+ -+ . reduce by rule 139 -+ -+ -+state 46: -+ -+ Paragraph : START_P . TextList -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 128 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 47: -+ -+ List : START_OL . ListItemList END_OL -+ -+ START_LI shift 113 -+ -+ ListItemList goto 129 -+ ListItem goto 111 -+ -+ . reduce by rule 70 -+ -+ -+state 48: -+ -+ List : START_MENU . ListItemList END_MENU -+ -+ START_LI shift 113 -+ -+ ListItemList goto 130 -+ ListItem goto 111 -+ -+ . reduce by rule 70 -+ -+ -+state 49: -+ -+ Special : START_MAP . AreaList END_MAP -+ -+ TAG_AREA shift 132 -+ -+ AreaList goto 131 -+ -+ . reduce by rule 140 -+ -+ -+state 50: -+ -+ Phrase : START_KBD . TextList END_KBD -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 133 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 51: -+ -+ Form : TAG_INPUT . (reduce by rule 142) -+ -+ -+ -+ . reduce by rule 142 -+ -+ -+state 52: -+ -+ Special : TAG_IMG . (reduce by rule 133) -+ -+ -+ -+ . reduce by rule 133 -+ -+ -+state 53: -+ -+ Font : START_I . TextList END_I -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 134 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 54: -+ -+ BlockWOIndex : TAG_HR . (reduce by rule 60) -+ -+ -+ -+ . reduce by rule 60 -+ -+ -+state 55: -+ -+ BodyElement : START_H6 . TextList END_H6 -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 135 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 56: -+ -+ BodyElement : START_H5 . TextList END_H5 -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 136 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 57: -+ -+ BodyElement : START_H4 . TextList END_H4 -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 137 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 58: -+ -+ BodyElement : START_H3 . TextList END_H3 -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 138 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 59: -+ -+ BodyElement : START_H2 . TextList END_H2 -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 139 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 60: -+ -+ BodyElement : START_H1 . TextList END_H1 -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 140 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 61: -+ -+ BlockWOIndex : START_FORM . BodyContent END_FORM -+ -+ START_A shift 79 -+ START_ADDRESS shift 78 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ START_BLOCKQUOTE shift 74 -+ TAG_BR shift 72 -+ START_CENTER shift 71 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_DIR shift 67 -+ START_DIV shift 66 -+ START_DL shift 65 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_FORM shift 61 -+ START_H1 shift 60 -+ START_H2 shift 59 -+ START_H3 shift 58 -+ START_H4 shift 57 -+ START_H5 shift 56 -+ START_H6 shift 55 -+ TAG_HR shift 54 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ TAG_ISINDEX shift 96 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ START_MENU shift 48 -+ START_OL shift 47 -+ START_P shift 46 -+ TAG_PARAM shift 45 -+ START_PRE shift 44 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TABLE shift 36 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_UL shift 32 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ BodyContent goto 142 -+ BodyContent1 goto 141 -+ BodyElement goto 93 -+ BlockWOIndex goto 92 -+ Block goto 91 -+ Paragraph goto 90 -+ List goto 22 -+ Preformatted goto 21 -+ TextWOScript goto 89 -+ Text goto 88 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 29 -+ -+ -+state 62: -+ -+ Special : START_BASEFONT . TextList END_BASEFONT -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 143 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 63: -+ -+ Special : START_FONT . TextList END_FONT -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 144 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 64: -+ -+ Phrase : START_EM . TextList END_EM -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 145 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 65: -+ -+ List : START_DL . DLItemList END_DL -+ -+ START_DD shift 149 -+ START_DT shift 148 -+ -+ DLItemList goto 147 -+ DLItem goto 146 -+ -+ . reduce by rule 73 -+ -+ -+state 66: -+ -+ BlockWOIndex : START_DIV . BodyContent END_DIV -+ -+ START_A shift 79 -+ START_ADDRESS shift 78 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ START_BLOCKQUOTE shift 74 -+ TAG_BR shift 72 -+ START_CENTER shift 71 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_DIR shift 67 -+ START_DIV shift 66 -+ START_DL shift 65 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_FORM shift 61 -+ START_H1 shift 60 -+ START_H2 shift 59 -+ START_H3 shift 58 -+ START_H4 shift 57 -+ START_H5 shift 56 -+ START_H6 shift 55 -+ TAG_HR shift 54 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ TAG_ISINDEX shift 96 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ START_MENU shift 48 -+ START_OL shift 47 -+ START_P shift 46 -+ TAG_PARAM shift 45 -+ START_PRE shift 44 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TABLE shift 36 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_UL shift 32 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ BodyContent goto 150 -+ BodyContent1 goto 141 -+ BodyElement goto 93 -+ BlockWOIndex goto 92 -+ Block goto 91 -+ Paragraph goto 90 -+ List goto 22 -+ Preformatted goto 21 -+ TextWOScript goto 89 -+ Text goto 88 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 29 -+ -+ -+state 67: -+ -+ List : START_DIR . ListItemList END_DIR -+ -+ START_LI shift 113 -+ -+ ListItemList goto 151 -+ ListItem goto 111 -+ -+ . reduce by rule 70 -+ -+ -+state 68: -+ -+ Phrase : START_DFN . TextList END_DFN -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 152 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 69: -+ -+ Phrase : START_CODE . TextList END_CODE -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 153 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 70: -+ -+ Phrase : START_CITE . TextList END_CITE -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 154 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 71: -+ -+ BlockWOIndex : START_CENTER . BodyContent END_CENTER -+ -+ START_A shift 79 -+ START_ADDRESS shift 78 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ START_BLOCKQUOTE shift 74 -+ TAG_BR shift 72 -+ START_CENTER shift 71 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_DIR shift 67 -+ START_DIV shift 66 -+ START_DL shift 65 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_FORM shift 61 -+ START_H1 shift 60 -+ START_H2 shift 59 -+ START_H3 shift 58 -+ START_H4 shift 57 -+ START_H5 shift 56 -+ START_H6 shift 55 -+ TAG_HR shift 54 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ TAG_ISINDEX shift 96 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ START_MENU shift 48 -+ START_OL shift 47 -+ START_P shift 46 -+ TAG_PARAM shift 45 -+ START_PRE shift 44 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TABLE shift 36 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_UL shift 32 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ BodyContent goto 155 -+ BodyContent1 goto 141 -+ BodyElement goto 93 -+ BlockWOIndex goto 92 -+ Block goto 91 -+ Paragraph goto 90 -+ List goto 22 -+ Preformatted goto 21 -+ TextWOScript goto 89 -+ Text goto 88 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 29 -+ -+ -+state 72: -+ -+ Special : TAG_BR . (reduce by rule 137) -+ -+ -+ -+ . reduce by rule 137 -+ -+ -+state 73: -+ -+ BodyContent0 : START_BODY . BodyContent -+ -+ START_A shift 79 -+ START_ADDRESS shift 78 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ START_BLOCKQUOTE shift 74 -+ TAG_BR shift 72 -+ START_CENTER shift 71 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_DIR shift 67 -+ START_DIV shift 66 -+ START_DL shift 65 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_FORM shift 61 -+ START_H1 shift 60 -+ START_H2 shift 59 -+ START_H3 shift 58 -+ START_H4 shift 57 -+ START_H5 shift 56 -+ START_H6 shift 55 -+ TAG_HR shift 54 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ TAG_ISINDEX shift 96 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ START_MENU shift 48 -+ START_OL shift 47 -+ START_P shift 46 -+ TAG_PARAM shift 45 -+ START_PRE shift 44 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TABLE shift 36 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_UL shift 32 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ BodyContent goto 156 -+ BodyContent1 goto 141 -+ BodyElement goto 93 -+ BlockWOIndex goto 92 -+ Block goto 91 -+ Paragraph goto 90 -+ List goto 22 -+ Preformatted goto 21 -+ TextWOScript goto 89 -+ Text goto 88 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 29 -+ -+ -+state 74: -+ -+ BlockWOIndex : START_BLOCKQUOTE . BodyContent END_BLOCKQUOTE -+ -+ START_A shift 79 -+ START_ADDRESS shift 78 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ START_BLOCKQUOTE shift 74 -+ TAG_BR shift 72 -+ START_CENTER shift 71 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_DIR shift 67 -+ START_DIV shift 66 -+ START_DL shift 65 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_FORM shift 61 -+ START_H1 shift 60 -+ START_H2 shift 59 -+ START_H3 shift 58 -+ START_H4 shift 57 -+ START_H5 shift 56 -+ START_H6 shift 55 -+ TAG_HR shift 54 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ TAG_ISINDEX shift 96 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ START_MENU shift 48 -+ START_OL shift 47 -+ START_P shift 46 -+ TAG_PARAM shift 45 -+ START_PRE shift 44 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TABLE shift 36 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_UL shift 32 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ BodyContent goto 157 -+ BodyContent1 goto 141 -+ BodyElement goto 93 -+ BlockWOIndex goto 92 -+ Block goto 91 -+ Paragraph goto 90 -+ List goto 22 -+ Preformatted goto 21 -+ TextWOScript goto 89 -+ Text goto 88 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 29 -+ -+ -+state 75: -+ -+ Font : START_BIG . TextList END_BIG -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 158 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 76: -+ -+ Font : START_B . TextList END_B -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ START_CITE shift 70 -+ START_CODE shift 69 -+ START_DFN shift 68 -+ START_EM shift 64 -+ START_FONT shift 63 -+ START_BASEFONT shift 62 -+ START_I shift 53 -+ TAG_IMG shift 52 -+ TAG_INPUT shift 51 -+ START_KBD shift 50 -+ START_MAP shift 49 -+ TAG_PARAM shift 45 -+ START_SAMP shift 43 -+ START_SCRIPT shift 95 -+ START_SELECT shift 42 -+ START_SMALL shift 41 -+ START_STRIKE shift 40 -+ START_STRONG shift 39 -+ START_SUB shift 38 -+ START_SUP shift 37 -+ START_TEXTAREA shift 35 -+ START_TT shift 34 -+ START_U shift 33 -+ START_VAR shift 31 -+ PCDATA shift 30 -+ CHAR_REF shift 29 -+ ENTITY_REF shift 28 -+ -+ TextList goto 159 -+ TextList' goto 109 -+ TextWOScript goto 89 -+ Text goto 108 -+ Font goto 19 -+ Phrase goto 18 -+ Special goto 17 -+ Form goto 16 -+ PCDataElem goto 15 -+ -+ . reduce by rule 106 -+ -+ -+state 77: -+ -+ Special : START_APPLET . TextList END_APPLET -+ -+ START_A shift 79 -+ START_APPLET shift 77 -+ START_B shift 76 -+ START_BIG shift 75 -+ TAG_BR shift 72 -+ ... [truncated message content] |
From: Matthew F. <fl...@ml...> - 2005-11-19 10:48:44
|
Reworked the cm2mlb-map treatment. You can now specify the mapping of both anchored CM paths to MLB paths and anchored CM files to MLB files. This lets us map $ml-yacc-lib.cm/ml-yacc-lib.cm $(SML_LIB)/mlyacc-lib/mlyacc-lib.mlb $c/c.cm $(SML_LIB)/mlnlffi-lib/mlnlffi-lib.mlb which compensates for the difference in the names of the .cm and .mlb files. ---------------------------------------------------------------------- U mlton/trunk/util/cm2mlb/cm2mlb-map U mlton/trunk/util/cm2mlb/cm2mlb.sml ---------------------------------------------------------------------- Modified: mlton/trunk/util/cm2mlb/cm2mlb-map =================================================================== --- mlton/trunk/util/cm2mlb/cm2mlb-map 2005-11-18 03:28:42 UTC (rev 4242) +++ mlton/trunk/util/cm2mlb/cm2mlb-map 2005-11-19 18:48:43 UTC (rev 4243) @@ -1,17 +1,24 @@ -basis $(SML_LIB)/basis +$basis.cm $(SML_LIB)/basis +$basis.cm/basis.cm $(SML_LIB)/basis/basis.mlb -ml-yacc-lib $(SML_LIB)/mlyacc-lib +$ml-yacc-lib.cm $(SML_LIB)/mlyacc-lib +$ml-yacc-lib.cm/ml-yacc-lib.cm $(SML_LIB)/mlyacc-lib/mlyacc-lib.mlb -smlnj-lib $(SML_LIB)/smlnj-lib/Util -controls-lib $(SML_LIB)/smlnj-lib/Controls -hash-cons-lib $(SML_LIB)/smlnj-lib/HashCons -inet-lib $(SML_LIB)/smlnj-lib/INet -unix-lib $(SML_LIB)/smlnj-lib/Unix -pp-lib $(SML_LIB)/smlnj-lib/PP -html-lib $(SML_LIB)/smlnj-lib/HTML -regexp-lib $(SML_LIB)/smlnj-lib/RegExp -reactive-lib $(SML_LIB)/smlnj-lib/Reactive +$cml $(SML_LIB)/cml +$cml/cml.mlb $(SML_LIB)/cml/cml.mlb -ckit-lib $(SML_LIB)/ckit-lib/src +$c $(SML_LIB)/mlnlffi-lib +$c/c.cm $(SML_LIB)/mlnlffi-lib/mlnlffi-lib.mlb -c $(SML_LIB)/mlnlffi-lib +$smlnj-lib.cm $(SML_LIB)/smlnj-lib/Util +$controls-lib.cm $(SML_LIB)/smlnj-lib/Controls +$hash-cons-lib.cm $(SML_LIB)/smlnj-lib/HashCons +$inet-lib.cm $(SML_LIB)/smlnj-lib/INet +$unix-lib.cm $(SML_LIB)/smlnj-lib/Unix +$pp-lib.cm $(SML_LIB)/smlnj-lib/PP +$html-lib.cm $(SML_LIB)/smlnj-lib/HTML +$regexp-lib.cm $(SML_LIB)/smlnj-lib/RegExp +$reactive-lib.cm $(SML_LIB)/smlnj-lib/Reactive + +$ckit-lib.cm $(SML_LIB)/ckit-lib +$ckit-lib.cm/ckit-lib.cm $(SML_LIB)/ckit-lib/ckit-lib.mlb Modified: mlton/trunk/util/cm2mlb/cm2mlb.sml =================================================================== --- mlton/trunk/util/cm2mlb/cm2mlb.sml 2005-11-18 03:28:42 UTC (rev 4242) +++ mlton/trunk/util/cm2mlb/cm2mlb.sml 2005-11-19 18:48:43 UTC (rev 4243) @@ -138,7 +138,7 @@ let val cmLibDescr = CM.Library.descr cmLib val cmLibOSString = CM.Library.osstring cmLib - + fun mlbLibDef () = let val {base, ext} = OS.Path.splitBaseExt cmLibOSString @@ -146,40 +146,36 @@ in mlbLib end - - fun doitAnchoredPath (anchor, path) = - case peekAnchorMap anchor of - SOME mlbPath => - let - val {dir, file} = OS.Path.splitDirFile path - val {base, ext} = OS.Path.splitBaseExt file - val file = OS.Path.joinBaseExt {base = base, ext = SOME "mlb"} - val path = OS.Path.joinDirFile {dir = dir, file = file} - val mlbLib = OS.Path.joinDirFile {dir = mlbPath, file = path} - in - concat ["(* ", cmLibDescr, " ====> *) ", mlbLib] - end - | NONE => - concat ["(* ", cmLibDescr, " =??=> *) ", mlbLibDef ()] + fun doitAnchoredPath arcs = + let + fun loop (prefix, suffix) = + if List.null prefix + then concat ["(* ", cmLibDescr, " =??=> *) ", mlbLibDef ()] + else case peekAnchorMap (String.concatWith "/" (List.rev prefix)) of + SOME mlbPath => + concat ["(* ", cmLibDescr, " ====> *) ", mlbPath ^ suffix] + | NONE => + let + val suffix = + if suffix = "" + then OS.Path.joinBaseExt + {base = #base (OS.Path.splitBaseExt (List.hd prefix)), + ext = SOME "mlb"} + else (List.hd prefix) ^ suffix + in + loop (List.tl prefix, "/" ^ suffix) + end + in + loop (List.rev arcs, "") + end + val mlbLib = if String.sub (cmLibDescr, 0) = #"$" then case String.fields (fn #"/" => true | _ => false) cmLibDescr of - ["$", abbrev] => - let - val anchor = OS.Path.base abbrev - val path = abbrev - in - doitAnchoredPath (anchor, path) - end - | anchor::path => - let - val anchor = String.extract (anchor, 1, NONE) - val path = String.concatWith "/" path - in - doitAnchoredPath (anchor, path) - end - | _ => die "strange anchored path" + "$" :: (arcs as (arc0 :: _)) => + doitAnchoredPath (("$" ^ arc0) :: arcs) + | arcs => doitAnchoredPath arcs else concat ["(* ", cmLibOSString, " ===> *) ", mlbLibDef ()] in concat |
From: Matthew F. <fl...@ml...> - 2005-11-17 19:28:44
|
Skip make-pdf-guide if htmldoc is not found ---------------------------------------------------------------------- U mlton/trunk/Makefile ---------------------------------------------------------------------- Modified: mlton/trunk/Makefile =================================================================== --- mlton/trunk/Makefile 2005-11-18 03:06:08 UTC (rev 4241) +++ mlton/trunk/Makefile 2005-11-18 03:28:42 UTC (rev 4242) @@ -151,7 +151,9 @@ docs: dirs $(MAKE) -C $(LEX) docs $(MAKE) -C $(YACC) docs - bin/make-pdf-guide + if htmldoc --version >/dev/null 2>&1; then \ + bin/make-pdf-guide; \ + fi BSDSRC = /tmp/mlton-$(VERSION) .PHONY: freebsd |
From: Matthew F. <fl...@ml...> - 2005-11-17 19:06:23
|
MAIL First cut at fixing -codegen c -profile time A different approach to time profiling: maintain the current source position via program operations. This has the advantage that it significantly more portable than trying to inject just the right information into C code in a manner that isn't corrupted by gcc optimizations. The high points: * added volatile uint curSourceSeqsIndex; to struct GC_state; * replaced PROFILE_TIME with PROFILE_TIME_FIELD and PROFILE_TIME_LABEL, which distinguishes the two methods of time profiling (the former uses a the GC_state field to compute the sourceSeqsIndex, the later uses assembler labels). * added -profile time-field and -profile time-label as expert options; -profile time remains and is set according to the codegen; you can use the expert options to override the codegen default (use time-label with the C-codegen at your peril, use time-field with the native codegen for benchmarking purposes). * made _minimal_ changes to profile.fun; essentially, if we would have put in a profile label, instead put in an explict move of the sourceSeqsIndex to the GC_state field. Note that this sets curSourceSeqsIndex more often than necessary. Profile labels were inserted for code coverage properties; namely, at the beginning of every basic block -- whether or not control could have flowed from a block with a different souceSeqsIndex. Inspecting the generated code, it is clear that we could insert fewer sets. Here is a comparison of the results of using different combinations of codegen and profiling methods: [fluet@localhost native]$ mlton -codegen native -profile time hamlet.sml [fluet@localhost native]$ ./hamlet > /dev/null [fluet@localhost native]$ mlprof -thresh 2.0 hamlet mlmon.out 25.98 seconds of CPU time (4.54 seconds GC) function cur --------------------------- ----- <gc> 14.9% Sequence.Slice.collate.loop 12.7% BinaryMapFn.find.mem 11.0% Integer.scan 8.6% BinaryMapFn.insert 8.0% Lab.compare 5.2% Sequence.make2 4.4% BinaryMapFn.T' 3.9% Integer.scan.negate 3.0% EvalCore.evalExp 2.6% Integer.scan.num 2.2% BinaryMapFn.foldli.fold 2.1% Integer.scan.finishNum 2.1% [fluet@localhost native]$ mlton -codegen native -profile time-field hamlet.sml [fluet@localhost native]$ ./hamlet > /dev/null [fluet@localhost native]$ mlprof -thresh 2.0 hamlet mlmon.out 29.31 seconds of CPU time (4.42 seconds GC) function cur --------------------------- ----- Sequence.Slice.collate.loop 18.4% <gc> 13.1% Integer.scan 9.3% BinaryMapFn.insert 6.2% BinaryMapFn.find.mem 6.0% Sequence.make2 4.3% Integer.scan.negate 3.8% Lab.compare 3.6% BinaryMapFn.T' 3.5% wrapOverflow.fn 2.8% Integer.scan.finishNum 2.7% BinaryMapFn.N 2.6% EvalCore.evalExp 2.5% Integer.scan.num 2.1% EvalCore.evalAtExp 2.0% [fluet@localhost c]$ mlton -codegen c -profile time hamlet.sml [fluet@localhost c]$ ./hamlet > /dev/null [fluet@localhost c]$ mlprof -thresh 2.0 hamlet mlmon.out 60.78 seconds of CPU time (4.72 seconds GC) function cur --------------------------- ----- Sequence.Slice.collate.loop 18.7% BinaryMapFn.find.mem 11.0% BinaryMapFn.insert 10.2% <gc> 7.2% Integer.scan.negate 6.0% Integer.scan 6.0% Lab.compare 4.7% Sequence.make2 3.8% EvalCore.evalExp 3.5% EvalCore.evalAtPat 3.3% BinaryMapFn.T' 2.6% EvalCore.evalPatRow 2.4% Integer.scan.finishNum 2.4% wrapOverflow.fn 2.1% There is a slight slowdown of using the field method over using the label method, but nothing like the slowdown of going to the C codegen. Regardless of the running time of the program, you get essentially the same profiling results (with the exception that <gc> time proportional to total running time). ---------------------------------------------------------------------- U mlton/trunk/include/c-chunk.h U mlton/trunk/mlton/backend/backend.fun U mlton/trunk/mlton/backend/machine.fun U mlton/trunk/mlton/backend/profile.fun U mlton/trunk/mlton/backend/rep-type.fun U mlton/trunk/mlton/backend/runtime.fun U mlton/trunk/mlton/backend/runtime.sig U mlton/trunk/mlton/codegen/c-codegen/c-codegen.fun U mlton/trunk/mlton/control/control-flags.sig U mlton/trunk/mlton/control/control-flags.sml U mlton/trunk/mlton/main/compile.fun U mlton/trunk/mlton/main/lookup-constant.fun U mlton/trunk/mlton/main/main.fun U mlton/trunk/runtime/gc.c U mlton/trunk/runtime/gc.h ---------------------------------------------------------------------- Modified: mlton/trunk/include/c-chunk.h =================================================================== --- mlton/trunk/include/c-chunk.h 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/include/c-chunk.h 2005-11-18 03:06:08 UTC (rev 4241) @@ -190,24 +190,6 @@ Return(); \ } while (0) \ -#if (defined __APPLE_CC__) - -#define DeclareProfileLabel(l) \ - void l() - -#define ProfileLabel(l) \ - __asm__ __volatile__ (".globl _" #l "\n_" #l ":" : : ) - -#else - -#define DeclareProfileLabel(l) \ - void l() __attribute__ ((alias (#l "_internal"))) - -#define ProfileLabel(l) \ - __asm__ __volatile__ (#l "_internal:" : : ) - -#endif - /* ------------------------------------------------- */ /* Real */ /* ------------------------------------------------- */ Modified: mlton/trunk/mlton/backend/backend.fun =================================================================== --- mlton/trunk/mlton/backend/backend.fun 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/mlton/backend/backend.fun 2005-11-18 03:06:08 UTC (rev 4241) @@ -967,7 +967,7 @@ end | R.Kind.Jump => (M.Kind.Jump, live, Vector.new0 ()) val (first, statements) = - if !Control.profile = Control.ProfileTime + if !Control.profile = Control.ProfileTimeLabel then case (if 0 = Vector.length statements then NONE Modified: mlton/trunk/mlton/backend/machine.fun =================================================================== --- mlton/trunk/mlton/backend/machine.fun 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/mlton/backend/machine.fun 2005-11-18 03:06:08 UTC (rev 4241) @@ -884,7 +884,7 @@ vectors, ...}) = let val _ = - if !Control.profile = Control.ProfileTime + if !Control.profile = Control.ProfileTimeLabel then List.foreach (chunks, fn Chunk.T {blocks, ...} => Modified: mlton/trunk/mlton/backend/profile.fun =================================================================== --- mlton/trunk/mlton/backend/profile.fun 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/mlton/backend/profile.fun 2005-11-18 03:06:08 UTC (rev 4241) @@ -148,7 +148,9 @@ val profile = !Control.profile val profileStack: bool = !Control.profileStack val needProfileLabels: bool = - profile = ProfileTime orelse profile = ProfileLabel + profile = ProfileTimeLabel orelse profile = ProfileLabel + val needCodeCoverage: bool = + needProfileLabels orelse (profile = ProfileTimeField) val frameProfileIndices: (Label.t * int) list ref = ref [] val infoNodes: InfoNode.t list ref = ref [] val nameCounter = Counter.new 0 @@ -300,7 +302,7 @@ Property.getSetOnce (Label.plist, Property.initRaise ("info", Label.layout)) val labels = ref [] - fun profileLabelIndex (sourceSeqsIndex: int): Statement.t = + fun profileLabelFromIndex (sourceSeqsIndex: int): Statement.t = let val l = ProfileLabel.new () val _ = List.push (labels, {label = l, @@ -308,8 +310,25 @@ in Statement.ProfileLabel l end - fun profileLabel (sourceSeq: int list): Statement.t = - profileLabelIndex (sourceSeqIndex sourceSeq) + fun setCurSourceSeqsIndexFromIndex (sourceSeqsIndex: int): Statement.t = + let + val curSourceSeqsIndex = + Operand.Runtime Runtime.GCField.CurSourceSeqsIndex + in + Statement.Move + {dst = curSourceSeqsIndex, + src = Operand.word (WordX.fromIntInf + (IntInf.fromInt sourceSeqsIndex, + WordSize.default))} + end + fun codeCoverageStatementFromIndex (sourceSeqsIndex: int): Statement.t = + if needProfileLabels + then profileLabelFromIndex sourceSeqsIndex + else if profile = ProfileTimeField + then setCurSourceSeqsIndexFromIndex sourceSeqsIndex + else Error.bug "Profile.codeCoverageStatement" + fun codeCoverageStatement (sourceSeq: int list): Statement.t = + codeCoverageStatementFromIndex (sourceSeqIndex sourceSeq) local val {get: Func.t -> FuncInfo.t, ...} = Property.get (Func.plist, Property.initFun (fn _ => FuncInfo.new ())) @@ -444,22 +463,22 @@ statements: Statement.t list, transfer: Transfer.t}: unit = let - val (_, npl, sourceSeq, statements) = + val (_, ncc, sourceSeq, statements) = List.fold (statements, (leaves, true, sourceSeq, []), - fn (s, (leaves, npl, sourceSeq, ss)) => + fn (s, (leaves, ncc, sourceSeq, ss)) => case s of Object _ => (leaves, true, sourceSeq, s :: ss) | Profile ps => let - val (npl, ss) = - if needProfileLabels + val (ncc, ss) = + if needCodeCoverage then - if npl + if ncc andalso not (List.isEmpty sourceSeq) then (false, - profileLabel sourceSeq :: ss) + codeCoverageStatement sourceSeq :: ss) else (true, ss) else (false, ss) val (leaves, sourceSeq) = @@ -478,13 +497,13 @@ InfoNode.sourcesIndex infoNode :: sourceSeq)) in - (leaves, npl, sourceSeq, ss) + (leaves, ncc, sourceSeq, ss) end | _ => (leaves, true, sourceSeq, s :: ss)) val statements = - if needProfileLabels - andalso npl - then profileLabel sourceSeq :: statements + if needCodeCoverage + andalso ncc + then codeCoverageStatement sourceSeq :: statements else statements val {args, kind, label} = if profileStack andalso (case kind of @@ -499,10 +518,9 @@ addFrameProfileIndex (newLabel, sourceSeqIndex sourceSeq) val statements = - if needProfileLabels + if needCodeCoverage then (Vector.new1 - (profileLabelIndex - (sourceSeqIndex sourceSeq))) + (codeCoverageStatement sourceSeq)) else Vector.new0 () val _ = List.push @@ -556,8 +574,8 @@ val index = sourceSeqIndex (Push.toSources pushes) val _ = addFrameProfileIndex (newLabel, index) val statements = - if needProfileLabels - then Vector.new1 (profileLabelIndex index) + if needCodeCoverage + then Vector.new1 (codeCoverageStatementFromIndex index) else Vector.new0 () val _ = List.push Modified: mlton/trunk/mlton/backend/rep-type.fun =================================================================== --- mlton/trunk/mlton/backend/rep-type.fun 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/mlton/backend/rep-type.fun 2005-11-18 03:06:08 UTC (rev 4241) @@ -450,6 +450,7 @@ CanHandle => defaultWord | CardMap => cPointer () | CurrentThread => cPointer () + | CurSourceSeqsIndex => defaultWord | ExnStack => defaultWord | Frontier => cPointer () | Limit => cPointer () Modified: mlton/trunk/mlton/backend/runtime.fun =================================================================== --- mlton/trunk/mlton/backend/runtime.fun 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/mlton/backend/runtime.fun 2005-11-18 03:06:08 UTC (rev 4241) @@ -16,6 +16,7 @@ CanHandle | CardMap | CurrentThread + | CurSourceSeqsIndex | ExnStack | Frontier | Limit @@ -46,6 +47,7 @@ val canHandleOffset: Bytes.t ref = ref Bytes.zero val cardMapOffset: Bytes.t ref = ref Bytes.zero val currentThreadOffset: Bytes.t ref = ref Bytes.zero + val curSourceSeqsIndexOffset: Bytes.t ref = ref Bytes.zero val exnStackOffset: Bytes.t ref = ref Bytes.zero val frontierOffset: Bytes.t ref = ref Bytes.zero val limitOffset: Bytes.t ref = ref Bytes.zero @@ -56,12 +58,13 @@ val stackLimitOffset: Bytes.t ref = ref Bytes.zero val stackTopOffset: Bytes.t ref = ref Bytes.zero - fun setOffsets {canHandle, cardMap, currentThread, exnStack, frontier, - limit, limitPlusSlop, maxFrameSize, signalIsPending, - stackBottom, stackLimit, stackTop} = + fun setOffsets {canHandle, cardMap, currentThread, curSourceSeqsIndex, + exnStack, frontier, limit, limitPlusSlop, maxFrameSize, + signalIsPending, stackBottom, stackLimit, stackTop} = (canHandleOffset := canHandle ; cardMapOffset := cardMap ; currentThreadOffset := currentThread + ; curSourceSeqsIndexOffset := curSourceSeqsIndex ; exnStackOffset := exnStack ; frontierOffset := frontier ; limitOffset := limit @@ -76,6 +79,7 @@ fn CanHandle => !canHandleOffset | CardMap => !cardMapOffset | CurrentThread => !currentThreadOffset + | CurSourceSeqsIndex => !curSourceSeqsIndexOffset | ExnStack => !exnStackOffset | Frontier => !frontierOffset | Limit => !limitOffset @@ -90,6 +94,7 @@ fn CanHandle => "CanHandle" | CardMap => "CardMap" | CurrentThread => "CurrentThread" + | CurSourceSeqsIndex => "CurSourceSeqsIndex" | ExnStack => "ExnStack" | Frontier => "Frontier" | Limit => "Limit" Modified: mlton/trunk/mlton/backend/runtime.sig =================================================================== --- mlton/trunk/mlton/backend/runtime.sig 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/mlton/backend/runtime.sig 2005-11-18 03:06:08 UTC (rev 4241) @@ -23,6 +23,7 @@ CanHandle | CardMap | CurrentThread + | CurSourceSeqsIndex | ExnStack | Frontier (* The place where the next object is allocated. *) | Limit (* frontier + heapSize - LIMIT_SLOP *) @@ -39,6 +40,7 @@ val setOffsets: {canHandle: Bytes.t, cardMap: Bytes.t, currentThread: Bytes.t, + curSourceSeqsIndex: Bytes.t, exnStack: Bytes.t, frontier: Bytes.t, limit: Bytes.t, Modified: mlton/trunk/mlton/codegen/c-codegen/c-codegen.fun =================================================================== --- mlton/trunk/mlton/codegen/c-codegen/c-codegen.fun 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/mlton/codegen/c-codegen/c-codegen.fun 2005-11-18 03:06:08 UTC (rev 4241) @@ -359,7 +359,8 @@ | Control.ProfileCount => "PROFILE_COUNT" | Control.ProfileDrop => "PROFILE_NONE" | Control.ProfileLabel => "PROFILE_NONE" - | Control.ProfileTime => "PROFILE_TIME" + | Control.ProfileTimeField => "PROFILE_TIME_FIELD" + | Control.ProfileTimeLabel => "PROFILE_TIME_LABEL" in C.callNoSemi ("Main", [C.int align, @@ -676,7 +677,9 @@ print) )) end - val amTimeProfiling = !Control.profile = Control.ProfileTime + val amTimeProfiling = + !Control.profile = Control.ProfileTimeField + orelse !Control.profile = Control.ProfileTimeLabel fun outputChunk (chunk as Chunk.T {chunkLabel, blocks, regMax, ...}) = let val {done, print, ...} = outputC () Modified: mlton/trunk/mlton/control/control-flags.sig =================================================================== --- mlton/trunk/mlton/control/control-flags.sig 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/mlton/control/control-flags.sig 2005-11-18 03:06:08 UTC (rev 4241) @@ -252,7 +252,8 @@ | ProfileCount | ProfileDrop | ProfileLabel - | ProfileTime + | ProfileTimeField + | ProfileTimeLabel val profile: profile ref val profileBranch: bool ref Modified: mlton/trunk/mlton/control/control-flags.sml =================================================================== --- mlton/trunk/mlton/control/control-flags.sml 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/mlton/control/control-flags.sml 2005-11-18 03:06:08 UTC (rev 4241) @@ -814,7 +814,8 @@ | ProfileCount | ProfileDrop | ProfileLabel - | ProfileTime + | ProfileTimeField + | ProfileTimeLabel val toString = fn ProfileNone => "None" @@ -823,7 +824,8 @@ | ProfileCount => "Count" | ProfileDrop => "Drop" | ProfileLabel => "Label" - | ProfileTime => "Time" + | ProfileTimeField => "TimeField" + | ProfileTimeLabel => "TimeLabel" end datatype profile = datatype Profile.t Modified: mlton/trunk/mlton/main/compile.fun =================================================================== --- mlton/trunk/mlton/main/compile.fun 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/mlton/main/compile.fun 2005-11-18 03:06:08 UTC (rev 4241) @@ -454,6 +454,7 @@ canHandle = get "canHandle", cardMap = get "cardMapForMutator", currentThread = get "currentThread", + curSourceSeqsIndex = get "curSourceSeqsIndex", exnStack = get "exnStack", frontier = get "frontier", limit = get "limit", Modified: mlton/trunk/mlton/main/lookup-constant.fun =================================================================== --- mlton/trunk/mlton/main/lookup-constant.fun 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/mlton/main/lookup-constant.fun 2005-11-18 03:06:08 UTC (rev 4241) @@ -44,6 +44,7 @@ [ "canHandle", "currentThread", + "curSourceSeqsIndex", "exnStack", "frontier", "cardMapForMutator", Modified: mlton/trunk/mlton/main/main.fun =================================================================== --- mlton/trunk/mlton/main/main.fun 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/mlton/main/main.fun 2005-11-18 03:06:08 UTC (rev 4241) @@ -61,6 +61,7 @@ val linkOpts: {opt: string, pred: OptPred.t} list ref = ref [] val output: string option ref = ref NONE val profileSet: bool ref = ref false +val profileTimeSet: bool ref = ref false val runtimeArgs: string list ref = ref ["@MLton"] val showAnns: bool ref = ref false val stop = ref Place.OUT @@ -346,7 +347,10 @@ | "count" => ProfileCount | "drop" => ProfileDrop | "label" => ProfileLabel - | "time" => ProfileTime + | "time" => (profileTimeSet := true + ; ProfileTimeLabel) + | "time-field" => ProfileTimeField + | "time-label" => ProfileTimeLabel | _ => usage (concat ["invalid -profile arg: ", s]))))), (Normal, "profile-branch", " {false|true}", @@ -531,6 +535,11 @@ Out.standard) ; let open OS.Process in exit success end) else () + val () = if !profileTimeSet + then (case !codegen of + Native => profile := ProfileTimeLabel + | _ => profile := ProfileTimeField) + else () val () = if !exnHistory then (case !profile of ProfileNone => profile := ProfileCallStack @@ -639,7 +648,8 @@ | OpenBSD => () | Solaris => () | _ => - if !profile = ProfileTime + if !profile = ProfileTimeField + orelse !profile = ProfileTimeLabel then usage (concat ["can't use -profile time on ", MLton.Platform.OS.toString targetOS]) else () Modified: mlton/trunk/runtime/gc.c =================================================================== --- mlton/trunk/runtime/gc.c 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/runtime/gc.c 2005-11-18 03:06:08 UTC (rev 4241) @@ -3544,7 +3544,8 @@ if (DEBUG_PROFILE) fprintf (stderr, "GC_profileDone ()\n"); assert (s->profilingIsOn); - if (PROFILE_TIME == s->profileKind) + if (PROFILE_TIME_FIELD == s->profileKind + or PROFILE_TIME_LABEL == s->profileKind) setProfTimer (0); s->profilingIsOn = FALSE; p = s->profile; @@ -3814,9 +3815,12 @@ case PROFILE_NONE: die ("impossible PROFILE_NONE"); break; - case PROFILE_TIME: + case PROFILE_TIME_FIELD: kind = "time\n"; break; + case PROFILE_TIME_LABEL: + kind = "time\n"; + break; } writeString (fd, kind); writeString (fd, s->profileStack @@ -3853,28 +3857,33 @@ void GC_handleSigProf (pointer pc) { uint frameIndex; GC_state s; - uint sourceSeqIndex; + uint sourceSeqsIndex; s = catcherState; if (DEBUG_PROFILE) fprintf (stderr, "GC_handleSigProf (0x%08x)\n", (uint)pc); if (s->amInGC) - sourceSeqIndex = SOURCE_SEQ_GC; + sourceSeqsIndex = SOURCE_SEQ_GC; else { frameIndex = topFrameIndex (s); if (s->frameLayouts[frameIndex].isC) - sourceSeqIndex = s->frameSources[frameIndex]; + sourceSeqsIndex = s->frameSources[frameIndex]; else { - if (s->textStart <= pc and pc < s->textEnd) - sourceSeqIndex = s->textSources [pc - s->textStart]; - else { - if (DEBUG_PROFILE) - fprintf (stderr, "pc out of bounds\n"); - sourceSeqIndex = SOURCE_SEQ_UNKNOWN; + if (PROFILE_TIME_LABEL == s->profileKind) { + if (s->textStart <= pc and pc < s->textEnd) + sourceSeqsIndex = + s->textSources [pc - s->textStart]; + else { + if (DEBUG_PROFILE) + fprintf (stderr, "pc out of bounds\n"); + sourceSeqsIndex = SOURCE_SEQ_UNKNOWN; + } + } else { + sourceSeqsIndex = s->curSourceSeqsIndex; } } } - profileInc (s, 1, sourceSeqIndex); + profileInc (s, 1, sourceSeqsIndex); } static int compareProfileLabels (const void *v1, const void *v2) { @@ -3893,6 +3902,7 @@ uint sourceSeqsIndex; s->profile = GC_profileNew (s); + if (PROFILE_TIME_LABEL == s->profileKind) { /* Sort sourceLabels by address. */ qsort (s->sourceLabels, s->sourceLabelsSize, sizeof (*s->sourceLabels), compareProfileLabels); @@ -3929,6 +3939,9 @@ } for ( ; p < s->textEnd; ++p) s->textSources[p - s->textStart] = sourceSeqsIndex; + } else { + s->curSourceSeqsIndex = SOURCE_SEQ_UNKNOWN; + } /* * Install catcher, which handles SIGPROF and calls MLton_Profile_inc. * @@ -4540,7 +4553,8 @@ break; case PROFILE_NONE: die ("impossible PROFILE_NONE"); - case PROFILE_TIME: + case PROFILE_TIME_FIELD: + case PROFILE_TIME_LABEL: profileTimeInit (s); break; } Modified: mlton/trunk/runtime/gc.h =================================================================== --- mlton/trunk/runtime/gc.h 2005-11-17 22:31:55 UTC (rev 4240) +++ mlton/trunk/runtime/gc.h 2005-11-18 03:06:08 UTC (rev 4241) @@ -246,7 +246,8 @@ PROFILE_ALLOC, PROFILE_COUNT, PROFILE_NONE, - PROFILE_TIME, + PROFILE_TIME_FIELD, + PROFILE_TIME_LABEL } ProfileKind; typedef struct GC_source { @@ -377,6 +378,7 @@ */ uint crossMapValidSize; GC_thread currentThread; /* This points to a thread in the heap. */ + volatile uint curSourceSeqsIndex; /* Used by time profiling. */ uint fixedHeap; /* If 0, then no fixed heap. */ GC_frameLayout *frameLayouts; uint frameLayoutsSize; @@ -505,7 +507,7 @@ bool summary; pointer textEnd; /* An array of indices, one entry for each address in the text segment, - * giving and index into profileSourceSeqs. + * giving an index into profileSourceSeqs. */ uint *textSources; pointer textStart; |
From: Matthew F. <fl...@ml...> - 2005-11-17 14:31:56
|
Dropped implicit home directory cm2mlb-map; configure MLton delivered libraries ---------------------------------------------------------------------- U mlton/trunk/util/cm2mlb/cm2mlb-map U mlton/trunk/util/cm2mlb/cm2mlb.sml ---------------------------------------------------------------------- Modified: mlton/trunk/util/cm2mlb/cm2mlb-map =================================================================== --- mlton/trunk/util/cm2mlb/cm2mlb-map 2005-11-16 04:07:42 UTC (rev 4239) +++ mlton/trunk/util/cm2mlb/cm2mlb-map 2005-11-17 22:31:55 UTC (rev 4240) @@ -1,3 +1,5 @@ +basis $(SML_LIB)/basis + ml-yacc-lib $(SML_LIB)/mlyacc-lib smlnj-lib $(SML_LIB)/smlnj-lib/Util Modified: mlton/trunk/util/cm2mlb/cm2mlb.sml =================================================================== --- mlton/trunk/util/cm2mlb/cm2mlb.sml 2005-11-16 04:07:42 UTC (rev 4239) +++ mlton/trunk/util/cm2mlb/cm2mlb.sml 2005-11-17 22:31:55 UTC (rev 4240) @@ -6,7 +6,6 @@ * versions, since it depends on the CM structure. * * cm2mlb takes a ".cm" file and prints on stdout a corresponding ".mlb". - * cm2mlb will look in $HOME/.mlton/cm2mlb-map. * * To use from the REPL, do the following: * CM2MLB.cm2mlb {defines = ["MLton"], @@ -59,6 +58,45 @@ end end + structure AnchorMap = + struct + + fun make (file : string) = + if OS.FileSys.access (file, [OS.FileSys.A_READ]) + then + let + val lines = + let + val f = TextIO.openIn file + in + let + fun loop lines = + case TextIO.inputLine f of + NONE => List.rev lines + | SOME l => loop (l::lines) + in + loop [] + before TextIO.closeIn f + end handle e => (TextIO.closeIn f; raise e) + end handle _ => [] + in + List.mapPartial + (fn line => + if CharVector.all Char.isSpace line + then NONE + else + case String.tokens Char.isSpace line of + [cmAnchor, mlbPath] => + SOME {cmAnchor = cmAnchor, mlbPath = mlbPath} + | _ => die (concat ["strange cm->mlb mapping: ", + file, ":: ", line])) + lines + end + else [] + + val default = make "cm2mlb-map" + end + fun cm2mlb {defines, maps, out, sources} = let (* Define preprocessor symbols *) @@ -78,46 +116,10 @@ val () = if dir <> "" then OS.FileSys.chDir dir else () local - fun make (file : string) = - if OS.FileSys.access (file, [OS.FileSys.A_READ]) - then - let - val lines = - let - val f = TextIO.openIn file - in - let - fun loop lines = - case TextIO.inputLine f of - NONE => List.rev lines - | SOME l => loop (l::lines) - in - loop [] - before TextIO.closeIn f - end handle e => (TextIO.closeIn f; raise e) - end handle _ => [] - in - List.mapPartial - (fn line => - if CharVector.all Char.isSpace line - then NONE - else - case String.tokens Char.isSpace line of - [cmAnchor, mlbPath] => - SOME {cmAnchor = cmAnchor, mlbPath = mlbPath} - | _ => die (concat ["strange cm->mlb mapping: ", - file, ":: ", line])) - lines - end - else [] val anchorMap = - (List.rev o List.concat) - ((List.map make maps) @ - [case OS.Process.getEnv "HOME" of - NONE => [] - | SOME path => make (concat [path, "/.mlton/cm2mlb-map"]), - [{cmAnchor = "basis", - mlbPath = "$(SML_LIB)/basis"}]]) + List.concat + ((List.map AnchorMap.make maps) @ + [AnchorMap.default]) fun peekAnchorMap cmAnchor' = case List.find (fn {cmAnchor, ...} => cmAnchor = cmAnchor') anchorMap of |
From: Matthew F. <fl...@ml...> - 2005-11-15 20:07:57
|
Added inline keyword to GC functions. On the whole, the x86_64 branch GC seems to be on par with the HEAD branch. When bootstrapping from HEAD, the first two rounds of compilation have the following GC statistics: GC type time ms number bytes bytes/sec ------------- ------- ------- --------------- --------------- copying 8,190 15 743,351,148 90,763,268 mark-compact 7,720 1 270,968,964 35,099,606 minor 40,490 84 2,324,098,348 57,399,315 total GC time: 57,320 ms (23.4%) max pause: 7,840 ms total allocated: 36,724,587,360 bytes max live: 367,636,960 bytes max semispace: 2,898,235,392 bytes max stack size: 5,931,008 bytes marked cards: 7,294,459 minor scanned: 2,479,793,968 bytes minor skipped: 0 bytes GC type time ms number bytes bytes/sec ------------- ------- ------- --------------- --------------- copying 6,410 10 572,569,192 89,324,370 mark-compact 14,340 2 583,604,792 40,697,684 minor 38,960 70 2,381,812,548 61,134,817 total GC time: 60,880 ms (24.7%) max pause: 8,710 ms total allocated: 36,958,526,152 bytes max live: 420,478,708 bytes max semispace: 2,526,560,256 bytes max stack size: 5,906,432 bytes marked cards: 7,036,479 minor scanned: 2,283,542,764 bytes minor skipped: 0 bytes Both of these are using the HEAD runtime. The another round of compilation gives the following GC statistics: GC type time ms number bytes bytes/sec ------------- ------- ------- --------------- --------------- copying 36,926 28 5,082,738,360 137,646,595 mark-compact 16,213 2 532,059,008 32,816,814 minor 40,058 99 2,587,561,848 64,595,379 total GC time: 94,885 ms (35.4%) max pause: 10,088 ms total allocated: 36,651,485,884 bytes max live: 420,482,864 bytes max semispace: 2,526,572,544 bytes max stack size: 5,935,104 bytes marked cards: 7,004,958 minor scanned: 2,173,534,208 bytes There is obviously something bogus with the copying GC -- there's too many of them and they seem to be copying way more data than they should. There also seems to be an awful lot more minor GCs. I suspect that some heap-sizing parameters got messed up in the rewrite, since there doesn't appear to be a correctness problem. ---------------------------------------------------------------------- U mlton/branches/on-20050822-x86_64-branch/runtime/gc/align.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/array-allocate.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/array.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/atomic.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/call-stack.c U mlton/branches/on-20050822-x86_64-branch/runtime/gc/call-stack.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/cheney-copy.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/controls.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/copy-thread.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/current.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/dfs-mark.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/enter_leave.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/foreach.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/forward.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/frame.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/garbage-collection.c U mlton/branches/on-20050822-x86_64-branch/runtime/gc/garbage-collection.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/gc_state.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/generational.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/handler.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/hash-cons.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/heap.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/invariant.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/mark-compact.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/new-object.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/object-size.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/object.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/objptr.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/pointer.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/profiling.c U mlton/branches/on-20050822-x86_64-branch/runtime/gc/profiling.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/rusage.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/sources.c U mlton/branches/on-20050822-x86_64-branch/runtime/gc/sources.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/stack.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/switch-thread.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/thread.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/translate.h U mlton/branches/on-20050822-x86_64-branch/runtime/gc/weak.h ---------------------------------------------------------------------- Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/align.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/align.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/align.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,9 +8,9 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static size_t alignWithExtra (GC_state s, size_t bytes, size_t extra); -static bool isFrontierAligned (GC_state s, pointer p); -static pointer alignFrontier (GC_state s, pointer p); +static inline size_t alignWithExtra (GC_state s, size_t bytes, size_t extra); +static inline bool isFrontierAligned (GC_state s, pointer p); +static inline pointer alignFrontier (GC_state s, pointer p); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/array-allocate.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/array-allocate.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/array-allocate.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -6,11 +6,11 @@ * See the file MLton-LICENSE for details. */ -#if (defined (MLTON_GC_INTERNAL_FUNCS)) +#if (defined (MLTON_GC_INTERNAL_BASIS)) pointer GC_arrayAllocate (GC_state s, size_t ensureBytesFree, GC_arrayLength numElements, GC_header header); -#endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ +#endif /* (defined (MLTON_GC_INTERNAL_BASIS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/array.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/array.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/array.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -38,9 +38,9 @@ static inline GC_arrayLength getArrayLength (pointer a); static inline GC_arrayCounter* getArrayCounterp (pointer a); static inline GC_arrayCounter getArrayCounter (pointer a); -static pointer indexArrayAtPointerIndex (GC_state s, pointer a, - GC_arrayCounter arrayIndex, - uint32_t pointerIndex); +static inline pointer indexArrayAtPointerIndex (GC_state s, pointer a, + GC_arrayCounter arrayIndex, + uint32_t pointerIndex); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/atomic.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/atomic.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/atomic.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,7 +8,7 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static void beginAtomic (GC_state s); -static void endAtomic (GC_state s); +static inline void beginAtomic (GC_state s); +static inline void endAtomic (GC_state s); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/call-stack.c =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/call-stack.c 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/call-stack.c 2005-11-16 04:07:42 UTC (rev 4239) @@ -6,8 +6,8 @@ * See the file MLton-LICENSE for details. */ -static void numStackFramesAux (GC_state s, - __attribute__ ((unused)) GC_frameIndex i) { +void numStackFramesAux (GC_state s, + __attribute__ ((unused)) GC_frameIndex i) { s->callStackState.numStackFrames++; } @@ -20,8 +20,7 @@ return s->callStackState.numStackFrames; } -static void callStackAux (GC_state s, - GC_frameIndex i) { +void callStackAux (GC_state s, GC_frameIndex i) { if (DEBUG_CALL_STACK) fprintf (stderr, "callStackAux ("FMTFI")\n", i); s->callStackState.callStack[s->callStackState.numStackFrames] = i; Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/call-stack.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/call-stack.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/call-stack.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -15,6 +15,14 @@ #endif /* (defined (MLTON_GC_INTERNAL_TYPES)) */ +#if (defined (MLTON_GC_INTERNAL_FUNCS)) + +static inline void numStackFramesAux (GC_state s, GC_frameIndex i); +static inline void callStackAux (GC_state s, GC_frameIndex i); + +#endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ + + #if (defined (MLTON_GC_INTERNAL_BASIS)) uint32_t GC_numStackFrames (GC_state s); Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/cheney-copy.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/cheney-copy.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/cheney-copy.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,8 +8,8 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static void updateWeaksForCheneyCopy (GC_state s); -static void swapHeapsForCheneyCopy (GC_state s); +static inline void updateWeaksForCheneyCopy (GC_state s); +static inline void swapHeapsForCheneyCopy (GC_state s); static void majorCheneyCopyGC (GC_state s); static void minorCheneyCopyGC (GC_state s); Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/controls.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/controls.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/controls.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -50,7 +50,7 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static bool detailedGCTime (GC_state s); -static bool needGCTime (GC_state s); +static inline bool detailedGCTime (GC_state s); +static inline bool needGCTime (GC_state s); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/copy-thread.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/copy-thread.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/copy-thread.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,7 +8,7 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static GC_thread copyThread (GC_state s, GC_thread from, size_t size); +static inline GC_thread copyThread (GC_state s, GC_thread from, size_t size); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/current.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/current.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/current.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,9 +8,9 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static objptr getThreadCurrentObjptr (GC_state s); -static GC_thread getThreadCurrent (GC_state s); -static objptr getStackCurrentObjptr (GC_state s); -static GC_stack getStackCurrent (GC_state s); +static inline objptr getThreadCurrentObjptr (GC_state s); +static inline GC_thread getThreadCurrent (GC_state s); +static inline objptr getStackCurrentObjptr (GC_state s); +static inline GC_stack getStackCurrent (GC_state s); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/dfs-mark.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/dfs-mark.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/dfs-mark.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -17,12 +17,12 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static bool isPointerMarked (pointer p); -static bool isPointerMarkedByMode (pointer p, GC_markMode m); +static inline bool isPointerMarked (pointer p); +static inline bool isPointerMarkedByMode (pointer p, GC_markMode m); static size_t dfsMarkByMode (GC_state s, pointer root, GC_markMode mode, bool shouldHashCons); -static void dfsMarkWithHashCons (GC_state s, objptr *opp); -static void dfsMarkWithoutHashCons (GC_state s, objptr *opp); -static void dfsUnmark (GC_state s, objptr *opp); +static inline void dfsMarkWithHashCons (GC_state s, objptr *opp); +static inline void dfsMarkWithoutHashCons (GC_state s, objptr *opp); +static inline void dfsUnmark (GC_state s, objptr *opp); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/enter_leave.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/enter_leave.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/enter_leave.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,7 +8,7 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static void enter (GC_state s); -static void leave (GC_state s); +static inline void enter (GC_state s); +static inline void leave (GC_state s); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/foreach.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/foreach.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/foreach.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -10,12 +10,12 @@ typedef void (*GC_foreachObjptrFun) (GC_state s, objptr *opp); -static void callIfIsObjptr (GC_state s, GC_foreachObjptrFun f, objptr *opp); +static inline void callIfIsObjptr (GC_state s, GC_foreachObjptrFun f, objptr *opp); /* foreachGlobalObjptr (s, f) * * Apply f to each global object pointer into the heap. */ -static void foreachGlobalObjptr (GC_state s, GC_foreachObjptrFun f); +static inline void foreachGlobalObjptr (GC_state s, GC_foreachObjptrFun f); /* foreachObjptrInObject (s, p, skipWeaks, f) * * Applies f to each object pointer in the object pointed to by p. @@ -23,8 +23,8 @@ * * If skipWeaks, then the object pointer in weak objects is skipped. */ -static pointer foreachObjptrInObject (GC_state s, pointer p, - GC_foreachObjptrFun f, bool skipWeaks); +static inline pointer foreachObjptrInObject (GC_state s, pointer p, + GC_foreachObjptrFun f, bool skipWeaks); /* foreachObjptrInRange (s, front, back, f, skipWeaks) * * Apply f to each pointer between front and *back, which should be a @@ -36,8 +36,8 @@ * * If skipWeaks, then the object pointer in weak objects is skipped. */ -static pointer foreachObjptrInRange (GC_state s, pointer front, pointer *back, - GC_foreachObjptrFun f, bool skipWeaks); +static inline pointer foreachObjptrInRange (GC_state s, pointer front, pointer *back, + GC_foreachObjptrFun f, bool skipWeaks); typedef void (*GC_foreachStackFrameFun) (GC_state s, GC_frameIndex i); @@ -46,6 +46,6 @@ * * Apply f to the frame index of each frame in the current stack. */ -static void foreachStackFrame (GC_state s, GC_foreachStackFrameFun f); +static inline void foreachStackFrame (GC_state s, GC_foreachStackFrameFun f); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/forward.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/forward.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/forward.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -21,10 +21,10 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static bool isPointerInToSpace (GC_state s, pointer p); -static bool isObjptrInToSpace (GC_state s, objptr op); -static void forwardObjptr (GC_state s, objptr *opp); -static void forwardObjptrIfInNursery (GC_state s, objptr *opp); -static void forwardInterGenerationalObjptrs (GC_state s); +static inline bool isPointerInToSpace (GC_state s, pointer p); +static inline bool isObjptrInToSpace (GC_state s, objptr op); +static inline void forwardObjptr (GC_state s, objptr *opp); +static inline void forwardObjptrIfInNursery (GC_state s, objptr *opp); +static inline void forwardInterGenerationalObjptrs (GC_state s); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/frame.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/frame.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/frame.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -51,8 +51,8 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static GC_frameIndex getFrameIndexFromReturnAddress (GC_state s, GC_returnAddress ra); -static GC_frameLayout getFrameLayoutFromFrameIndex (GC_state s, GC_frameIndex index); -static GC_frameLayout getFrameLayoutFromReturnAddress (GC_state s, GC_returnAddress ra); +static inline GC_frameIndex getFrameIndexFromReturnAddress (GC_state s, GC_returnAddress ra); +static inline GC_frameLayout getFrameLayoutFromFrameIndex (GC_state s, GC_frameIndex index); +static inline GC_frameLayout getFrameLayoutFromReturnAddress (GC_state s, GC_returnAddress ra); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/garbage-collection.c =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/garbage-collection.c 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/garbage-collection.c 2005-11-16 04:07:42 UTC (rev 4239) @@ -14,7 +14,7 @@ uintmax_t numGCs; size_t desiredSize; - s->cumulativeStatistics.numMinorGCs = 0; + s->lastMajorStatistics.numMinorGCs = 0; numGCs = s->cumulativeStatistics.numCopyingGCs + s->cumulativeStatistics.numMarkCompactGCs; Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/garbage-collection.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/garbage-collection.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/garbage-collection.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -10,18 +10,18 @@ static void minorGC (GC_state s); static void majorGC (GC_state s, size_t bytesRequested, bool mayResize); -static void growStackCurrent (GC_state s); -static void enterGC (GC_state s); -static void leaveGC (GC_state s); +static inline void growStackCurrent (GC_state s); +static inline void enterGC (GC_state s); +static inline void leaveGC (GC_state s); static void performGC (GC_state s, size_t oldGenBytesRequested, size_t nurseryBytesRequested, bool forceMajor, bool mayResize); -static void ensureInvariantForMutator (GC_state s, bool force); -static void ensureHasHeapBytesFree (GC_state s, - size_t oldGenBytesRequested, - size_t nurseryBytesRequested); +static inline void ensureInvariantForMutator (GC_state s, bool force); +static inline void ensureHasHeapBytesFree (GC_state s, + size_t oldGenBytesRequested, + size_t nurseryBytesRequested); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/gc_state.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/gc_state.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/gc_state.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -69,8 +69,8 @@ static void displayGCState (GC_state s, FILE *stream); -static size_t sizeofGCStateCurrentStackUsed (GC_state s); -static void setGCStateCurrentThreadAndStack (GC_state s); +static inline size_t sizeofGCStateCurrentStackUsed (GC_state s); +static inline void setGCStateCurrentThreadAndStack (GC_state s); static void setGCStateCurrentHeap (GC_state s, size_t oldGenBytesRequested, size_t nurseryBytesRequested); Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/generational.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/generational.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/generational.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -56,19 +56,19 @@ struct GC_generationalMaps *generational, FILE *stream); -static GC_cardMapIndex pointerToCardMapIndexAbsolute (pointer p); -static GC_cardMapIndex sizeToCardMapIndex (size_t z); -static size_t cardMapIndexToSize (GC_cardMapIndex i); -static pointer pointerToCardMapAddr (GC_state s, pointer p); +static inline GC_cardMapIndex pointerToCardMapIndexAbsolute (pointer p); +static inline GC_cardMapIndex sizeToCardMapIndex (size_t z); +static inline size_t cardMapIndexToSize (GC_cardMapIndex i); +static inline pointer pointerToCardMapAddr (GC_state s, pointer p); -static bool isCardMarked (GC_state s, pointer p); -static void markCard (GC_state s, pointer p); +static inline bool isCardMarked (GC_state s, pointer p); +static inline void markCard (GC_state s, pointer p); -static void setCardMapAbsolute (GC_state s); -static pointer getCrossMapCardStart (GC_state s, pointer p); +static inline void setCardMapAbsolute (GC_state s); +static inline pointer getCrossMapCardStart (GC_state s, pointer p); -static void clearCardMap (GC_state s); -static void clearCrossMap (GC_state s); +static inline void clearCardMap (GC_state s); +static inline void clearCrossMap (GC_state s); static void createCardMapAndCrossMap (GC_state s); static void resizeCardMapAndCrossMap (GC_state s); Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/handler.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/handler.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/handler.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,7 +8,7 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static void switchToSignalHandlerThreadIfNonAtomicAndSignalPending (GC_state s); +static inline void switchToSignalHandlerThreadIfNonAtomicAndSignalPending (GC_state s); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/hash-cons.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/hash-cons.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/hash-cons.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -35,16 +35,16 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static GC_objectHashTable allocHashTable (GC_state s); -static void freeHashTable (GC_objectHashTable t); +static inline GC_objectHashTable allocHashTable (GC_state s); +static inline void freeHashTable (GC_objectHashTable t); -static pointer insertHashTableElem (GC_state s, - GC_objectHashTable t, GC_hash hash, - pointer object, pointer max, bool mightBeThere); -static void growHashTableMaybe (GC_state s, GC_objectHashTable t); +static inline pointer insertHashTableElem (GC_state s, + GC_objectHashTable t, GC_hash hash, + pointer object, pointer max, bool mightBeThere); +static inline void growHashTableMaybe (GC_state s, GC_objectHashTable t); static pointer hashConsPointer (GC_state s, pointer object, bool countBytesHashConsed); -static void shareObjptr (GC_state s, objptr *opp); +static inline void shareObjptr (GC_state s, objptr *opp); static void printBytesHashConsedMessage (GC_state s, uintmax_t total); Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/heap.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/heap.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/heap.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -34,22 +34,23 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static bool isPointerInHeap (GC_state s, pointer p); -static bool isPointerInOldGen (GC_state s, pointer p); -static bool isPointerInNursery (GC_state s, pointer p); -static bool isPointerInFromSpace (GC_state s, pointer p); -static bool isObjptrInHeap (GC_state s, objptr op); -static bool isObjptrInOldGen (GC_state s, objptr op); -static bool isObjptrInNursery (GC_state s, objptr op); -static bool isObjptrInFromSpace (GC_state s, objptr op); -static bool hasHeapBytesFree (GC_state s, size_t oldGen, size_t nursery); -static bool isHeapInit (GC_heap h); +static inline bool isPointerInHeap (GC_state s, pointer p); +static inline bool isPointerInOldGen (GC_state s, pointer p); +static inline bool isPointerInNursery (GC_state s, pointer p); +static inline bool isPointerInFromSpace (GC_state s, pointer p); +static inline bool isObjptrInHeap (GC_state s, objptr op); +static inline bool isObjptrInOldGen (GC_state s, objptr op); +static inline bool isObjptrInNursery (GC_state s, objptr op); +static inline bool isObjptrInFromSpace (GC_state s, objptr op); +static inline bool hasHeapBytesFree (GC_state s, size_t oldGen, size_t nursery); +static inline bool isHeapInit (GC_heap h); static void displayHeap (GC_state s, GC_heap heap, FILE *stream); -static void initHeap (GC_state s, GC_heap h); -static size_t sizeofHeapDesired (GC_state s, size_t live, size_t currentSize); -static void releaseHeap (GC_state s, GC_heap h); +static inline void initHeap (GC_state s, GC_heap h); +static inline size_t sizeofHeapDesired (GC_state s, size_t live, size_t currentSize); + +static inline void releaseHeap (GC_state s, GC_heap h); static void shrinkHeap (GC_state s, GC_heap h, size_t keep); static bool createHeap (GC_state s, GC_heap h, size_t desiredSize, size_t minSize); static bool createHeapSecondary (GC_state s, size_t desiredSize); Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/invariant.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/invariant.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/invariant.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,10 +8,10 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static void assertIsObjptrInFromSpace (GC_state s, objptr *opp); +static inline void assertIsObjptrInFromSpace (GC_state s, objptr *opp); static bool invariantForGC (GC_state s); -static bool invariantForMutatorFrontier (GC_state s); -static bool invariantForMutatorStack (GC_state s); +static inline bool invariantForMutatorFrontier (GC_state s); +static inline bool invariantForMutatorStack (GC_state s); static bool invariantForMutator (GC_state s, bool frontier, bool stack); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/mark-compact.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/mark-compact.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/mark-compact.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,9 +8,9 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static void copyForThreadInternal (pointer dst, pointer src); -static void threadInternalObjptr (GC_state s, objptr *opp); -static void clearIfWeakAndUnmarkedForMarkCompact (GC_state s, pointer p); +static inline void copyForThreadInternal (pointer dst, pointer src); +static inline void threadInternalObjptr (GC_state s, objptr *opp); +static inline void clearIfWeakAndUnmarkedForMarkCompact (GC_state s, pointer p); static void updateForwardPointersForMarkCompact (GC_state s); static void updateBackwardPointersAndSlideForMarkCompact (GC_state s); static void majorMarkCompactGC (GC_state s); Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/new-object.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/new-object.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/new-object.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,9 +8,9 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static pointer newObject (GC_state s, GC_header header, - size_t bytesRequested, bool allocInOldGen); -static GC_stack newStack (GC_state s, size_t reserved, bool allocInOldGen); +static inline pointer newObject (GC_state s, GC_header header, + size_t bytesRequested, bool allocInOldGen); +static inline GC_stack newStack (GC_state s, size_t reserved, bool allocInOldGen); static GC_thread newThread (GC_state s, size_t stackSize); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/object-size.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/object-size.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/object-size.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,10 +8,10 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static size_t sizeofArrayNoHeader (GC_state s, GC_arrayLength numElements, - uint16_t numNonObjptrs, uint16_t numObjptrs); -static size_t sizeofStackNoHeader (GC_state s, GC_stack stack); +static inline size_t sizeofArrayNoHeader (GC_state s, GC_arrayLength numElements, + uint16_t numNonObjptrs, uint16_t numObjptrs); +static inline size_t sizeofStackNoHeader (GC_state s, GC_stack stack); -static size_t sizeofObject (GC_state s, pointer p); +static inline size_t sizeofObject (GC_state s, pointer p); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/object.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/object.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/object.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -59,9 +59,9 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static GC_header* getHeaderp (pointer p); -static GC_header getHeader (pointer p); -static GC_header buildHeaderFromTypeIndex (uint32_t t); +static inline GC_header* getHeaderp (pointer p); +static inline GC_header getHeader (pointer p); +static inline GC_header buildHeaderFromTypeIndex (uint32_t t); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ @@ -145,9 +145,9 @@ #define GC_WORD16_VECTOR_HEADER buildHeaderFromTypeIndex (WORD16_VECTOR_TYPE_INDEX) #define GC_WORD32_VECTOR_HEADER buildHeaderFromTypeIndex (WORD32_VECTOR_TYPE_INDEX) -static void splitHeader (GC_state s, GC_header header, - GC_objectTypeTag *tagRet, bool *hasIdentityRet, - uint16_t *bytesNonObjptrsRet, uint16_t *numObjptrsRet); -static pointer advanceToObjectData (GC_state s, pointer p); +static inline void splitHeader (GC_state s, GC_header header, + GC_objectTypeTag *tagRet, bool *hasIdentityRet, + uint16_t *bytesNonObjptrsRet, uint16_t *numObjptrsRet); +static inline pointer advanceToObjectData (GC_state s, pointer p); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/objptr.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/objptr.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/objptr.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -27,10 +27,10 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static bool isObjptr (objptr p); -static pointer objptrToPointer (objptr O, pointer B); -static objptr pointerToObjptr (pointer P, pointer B); -static pointer fetchObjptrToPointer (pointer OP, pointer B); -static void storeObjptrFromPointer (pointer OP, pointer P, pointer B); +static inline bool isObjptr (objptr p); +static inline pointer objptrToPointer (objptr O, pointer B); +static inline objptr pointerToObjptr (pointer P, pointer B); +static inline pointer fetchObjptrToPointer (pointer OP, pointer B); +static inline void storeObjptrFromPointer (pointer OP, pointer P, pointer B); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/pointer.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/pointer.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/pointer.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -10,6 +10,6 @@ #define BOGUS_POINTER (pointer)0x1 -static bool isPointer (pointer p); +static inline bool isPointer (pointer p); #endif /* (defined (MLTON_GC_INTERNAL_TYPES)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/profiling.c =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/profiling.c 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/profiling.c 2005-11-16 04:07:42 UTC (rev 4239) @@ -42,7 +42,7 @@ ps = getProfileStackInfo (s, i); if (DEBUG_PROFILE) fprintf (stderr, "adding %s to stack lastTotal = %"PRIuMAX" lastTotalGC = %"PRIuMAX"\n", - GC_sourceName (s, i), + getSourceName (s, i), p->total, p->totalGC); ps->lastTotal = p->total; @@ -79,7 +79,7 @@ if (DEBUG_ENTER_LEAVE or DEBUG_PROFILE) { profileIndent (); fprintf (stderr, "(entering %s\n", - GC_sourceName (s, sourceIndex)); + getSourceName (s, sourceIndex)); profileDepth++; } enterSourceForProfiling (s, (GC_profileMasterIndex)sourceIndex); @@ -103,7 +103,7 @@ ps = getProfileStackInfo (s, i); if (DEBUG_PROFILE) fprintf (stderr, "removing %s from stack ticksInc = %"PRIuMAX" ticksGCInc = %"PRIuMAX"\n", - GC_sourceName (s, i), + getSourceName (s, i), p->total - ps->lastTotal, p->totalGC - ps->lastTotalGC); ps->ticks += p->total - ps->lastTotal; @@ -140,7 +140,7 @@ profileDepth--; profileIndent (); fprintf (stderr, "leaving %s)\n", - GC_sourceName (s, sourceIndex)); + getSourceName (s, sourceIndex)); } leaveSourceForProfiling (s, (GC_profileMasterIndex)sourceIndex); leaveSourceForProfiling (s, sourceIndexToProfileMasterIndex (s, sourceIndex)); @@ -156,12 +156,12 @@ } -void profileInc (GC_state s, size_t amount, GC_sourceSeqIndex sourceSeqIndex) { +void incForProfiling (GC_state s, size_t amount, GC_sourceSeqIndex sourceSeqIndex) { uint32_t *sourceSeq; GC_sourceIndex topSourceIndex; if (DEBUG_PROFILE) - fprintf (stderr, "profileInc (%zu, "FMTSSI")\n", + fprintf (stderr, "incForProfiling (%zu, "FMTSSI")\n", amount, sourceSeqIndex); assert (sourceSeqIndex < s->sourceMaps.sourceSeqsLength); sourceSeq = s->sourceMaps.sourceSeqs[sourceSeqIndex]; @@ -172,7 +172,7 @@ if (DEBUG_PROFILE) { profileIndent (); fprintf (stderr, "bumping %s by %zu\n", - GC_sourceName (s, topSourceIndex), amount); + getSourceName (s, topSourceIndex), amount); } s->profiling.data->countTop[topSourceIndex] += amount; s->profiling.data->countTop[sourceIndexToProfileMasterIndex (s, topSourceIndex)] += amount; @@ -189,10 +189,10 @@ void GC_profileInc (GC_state s, size_t amount) { if (DEBUG_PROFILE) fprintf (stderr, "GC_profileInc (%zu)\n", amount); - profileInc (s, amount, - s->amInGC - ? SOURCE_SEQ_GC - : getStackTopFrameSourceSeqIndex (s, getStackCurrent (s))); + incForProfiling (s, amount, + s->amInGC + ? SOURCE_SEQ_GC + : getStackTopFrameSourceSeqIndex (s, getStackCurrent (s))); } void GC_profileAllocInc (GC_state s, size_t amount) { @@ -229,8 +229,8 @@ free (p); } -static void writeProfileCount (GC_state s, int fd, - GC_profileData p, GC_profileMasterIndex i) { +void writeProfileCount (GC_state s, int fd, + GC_profileData p, GC_profileMasterIndex i) { writeUintmaxU (fd, p->countTop[i]); if (s->profiling.stack) { GC_profileStack ps; @@ -303,7 +303,7 @@ * mlton/main/main.fun to make sure that time profiling is never * turned on. */ -void initProfilingTime (GC_state s) __attribute__ ((noreturn)); +static void initProfilingTime (GC_state s) __attribute__ ((noreturn)); void initProfilingTime (__attribute__ ((unused)) GC_state s) { die ("no time profiling"); } @@ -336,9 +336,10 @@ } } } - profileInc (s, 1, sourceSeqIndex); + incForProfiling (s, 1, sourceSeqIndex); } +static void initProfilingTime (GC_state s); static void initProfilingTime (GC_state s) { struct sigaction sa; @@ -375,7 +376,7 @@ */ static GC_state atexitForProfilingState; -static void atexitForProfiling (void) { +void atexitForProfiling (void) { int fd; GC_state s; @@ -433,7 +434,7 @@ if (DEBUG_PROFILE) fprintf (stderr, "done leaving %s\n", (profileMasterIndex < s->sourceMaps.sourcesLength) - ? GC_sourceName (s, (GC_sourceIndex)profileMasterIndex) + ? getSourceName (s, (GC_sourceIndex)profileMasterIndex) : s->sourceMaps.sourceNames[ profileMasterIndexToSourceNameIndex (s, profileMasterIndex)]); removeFromStackForProfiling (s, profileMasterIndex); Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/profiling.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/profiling.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/profiling.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -79,24 +79,27 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static GC_profileMasterIndex sourceIndexToProfileMasterIndex (GC_state s, GC_sourceIndex i); -static GC_sourceNameIndex profileMasterIndexToSourceNameIndex (GC_state s, GC_profileMasterIndex i); -static GC_profileStack getProfileStackInfo (GC_state s, GC_profileMasterIndex i); +static inline GC_profileMasterIndex sourceIndexToProfileMasterIndex (GC_state s, GC_sourceIndex i); +static inline GC_sourceNameIndex profileMasterIndexToSourceNameIndex (GC_state s, GC_profileMasterIndex i); +static inline GC_profileStack getProfileStackInfo (GC_state s, GC_profileMasterIndex i); -static void addToStackForProfiling (GC_state s, GC_profileMasterIndex i); -static void enterSourceForProfiling (GC_state s, GC_profileMasterIndex i); -static void enterForProfiling (GC_state s, GC_sourceSeqIndex sourceSeqIndex); -static void enterFrameForProfiling (GC_state s, GC_frameIndex i); +static inline void addToStackForProfiling (GC_state s, GC_profileMasterIndex i); +static inline void enterSourceForProfiling (GC_state s, GC_profileMasterIndex i); +static inline void enterForProfiling (GC_state s, GC_sourceSeqIndex sourceSeqIndex); +static inline void enterFrameForProfiling (GC_state s, GC_frameIndex i); -static void removeFromStackForProfiling (GC_state s, GC_profileMasterIndex i); -static void leaveSourceForProfiling (GC_state s, GC_profileMasterIndex i); -static void leaveForProfiling (GC_state s, GC_sourceSeqIndex sourceSeqIndex); -static void leaveFrameForProfiling (GC_state s, GC_frameIndex i); +static inline void removeFromStackForProfiling (GC_state s, GC_profileMasterIndex i); +static inline void leaveSourceForProfiling (GC_state s, GC_profileMasterIndex i); +static inline void leaveForProfiling (GC_state s, GC_sourceSeqIndex sourceSeqIndex); +static inline void leaveFrameForProfiling (GC_state s, GC_frameIndex i); -static void profileInc (GC_state s, size_t amount, GC_sourceSeqIndex sourceSeqIndex); +static inline void incForProfiling (GC_state s, size_t amount, GC_sourceSeqIndex sourceSeqIndex); +static void writeProfileCount (GC_state s, int fd, GC_profileData p, GC_profileMasterIndex i); + static void setProfTimer (long usec); static void initProfiling (GC_state s); +static void atexitForProfiling (void); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/rusage.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/rusage.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/rusage.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -6,14 +6,14 @@ * See the file MLton-LICENSE for details. */ -static void rusageZero (struct rusage *ru); -static void rusagePlusMax (struct rusage *ru1, - struct rusage *ru2, - struct rusage *ru); -static void rusageMinusMax (struct rusage *ru1, - struct rusage *ru2, - struct rusage *ru); -static uintmax_t rusageTime (struct rusage *ru); -static uintmax_t getCurrentTime (void); -static void startTiming (struct rusage *ru_start); +static inline void rusageZero (struct rusage *ru); +static inline void rusagePlusMax (struct rusage *ru1, + struct rusage *ru2, + struct rusage *ru); +static inline void rusageMinusMax (struct rusage *ru1, + struct rusage *ru2, + struct rusage *ru); +static inline uintmax_t rusageTime (struct rusage *ru); +static inline uintmax_t getCurrentTime (void); +static inline void startTiming (struct rusage *ru_start); static uintmax_t stopTiming (struct rusage *ru_start, struct rusage *ru_gc); Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/sources.c =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/sources.c 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/sources.c 2005-11-16 04:07:42 UTC (rev 4239) @@ -10,11 +10,15 @@ return s->sourceMaps.frameSources[getStackTopFrameIndex (s, stack)]; } -char* GC_sourceName (GC_state s, GC_sourceIndex i) { +char* getSourceName (GC_state s, GC_sourceIndex i) { assert (i < s->sourceMaps.sourcesLength); return s->sourceMaps.sourceNames[s->sourceMaps.sources[i].sourceNameIndex]; } +char* GC_sourceName (GC_state s, GC_sourceIndex i) { + return getSourceName (s, i); +} + int compareSourceLabels (const void *v1, const void *v2) { const struct GC_sourceLabel* l1 = (const struct GC_sourceLabel*)v1; const struct GC_sourceLabel* l2 = (const struct GC_sourceLabel*)v2; Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/sources.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/sources.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/sources.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -74,9 +74,11 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static GC_sourceSeqIndex getStackTopFrameSourceSeqIndex (GC_state s, GC_stack stack); +static inline GC_sourceSeqIndex getStackTopFrameSourceSeqIndex (GC_state s, GC_stack stack); -static int compareSourceLabels (const void *v1, const void *v2); +static inline char* getSourceName (GC_state s, GC_sourceIndex i); + +static inline int compareSourceLabels (const void *v1, const void *v2); static void sortSourceLabels (GC_state s); static void initTextSources (GC_state s); Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/stack.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/stack.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/stack.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -57,25 +57,25 @@ static void displayStack (GC_state s, GC_stack stack, FILE *stream); -static bool isStackEmpty (GC_stack stack); -static bool isStackReservedAligned (GC_state s, size_t reserved); +static inline bool isStackEmpty (GC_stack stack); +static inline bool isStackReservedAligned (GC_state s, size_t reserved); -static size_t sizeofStackSlop (GC_state s); -static size_t sizeofStackInitial (GC_state s); +static inline size_t sizeofStackSlop (GC_state s); +static inline size_t sizeofStackInitial (GC_state s); -static pointer getStackBottom (GC_state s, GC_stack stack); -static pointer getStackTop (GC_state s, GC_stack stack); -static pointer getStackLimitPlusSlop (GC_state s, GC_stack stack); -static pointer getStackLimit (GC_state s, GC_stack stack); -static GC_frameIndex getStackTopFrameIndex (GC_state s, GC_stack stack); -static GC_frameLayout getStackTopFrameLayout (GC_state s, GC_stack stack); -static uint16_t getStackTopFrameSize (GC_state s, GC_stack stack); +static inline pointer getStackBottom (GC_state s, GC_stack stack); +static inline pointer getStackTop (GC_state s, GC_stack stack); +static inline pointer getStackLimitPlusSlop (GC_state s, GC_stack stack); +static inline pointer getStackLimit (GC_state s, GC_stack stack); +static inline GC_frameIndex getStackTopFrameIndex (GC_state s, GC_stack stack); +static inline GC_frameLayout getStackTopFrameLayout (GC_state s, GC_stack stack); +static inline uint16_t getStackTopFrameSize (GC_state s, GC_stack stack); -static size_t sizeofStackMinimumReserved (GC_state s, GC_stack stack); -static size_t alignStackReserved (GC_state s, size_t reserved); -static size_t sizeofStackWithHeaderAligned (GC_state s, size_t reserved); -static size_t sizeofStackGrow (GC_state s, GC_stack stack); +static inline size_t sizeofStackMinimumReserved (GC_state s, GC_stack stack); +static inline size_t alignStackReserved (GC_state s, size_t reserved); +static inline size_t sizeofStackWithHeaderAligned (GC_state s, size_t reserved); +static inline size_t sizeofStackGrow (GC_state s, GC_stack stack); -static void copyStack (GC_state s, GC_stack from, GC_stack to); +static inline void copyStack (GC_state s, GC_stack from, GC_stack to); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/switch-thread.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/switch-thread.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/switch-thread.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,7 +8,7 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static void switchToThread (GC_state s, objptr op); +static inline void switchToThread (GC_state s, objptr op); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/thread.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/thread.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/thread.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -34,6 +34,6 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) static void displayThread (GC_state s, GC_thread thread, FILE *stream); -static size_t sizeofThread (GC_state s); +static inline size_t sizeofThread (GC_state s); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/translate.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/translate.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/translate.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -8,7 +8,7 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static void translateObjptr (GC_state s, objptr *opp); +static inline void translateObjptr (GC_state s, objptr *opp); static void translateHeap (GC_state s, pointer from, pointer to, size_t size); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gc/weak.h =================================================================== --- mlton/branches/on-20050822-x86_64-branch/runtime/gc/weak.h 2005-11-16 03:48:50 UTC (rev 4238) +++ mlton/branches/on-20050822-x86_64-branch/runtime/gc/weak.h 2005-11-16 04:07:42 UTC (rev 4239) @@ -37,8 +37,8 @@ #if (defined (MLTON_GC_INTERNAL_FUNCS)) -static size_t sizeofWeak (GC_state s); -static size_t offsetofWeak (GC_state s); +static inline size_t sizeofWeak (GC_state s); +static inline size_t offsetofWeak (GC_state s); #endif /* (defined (MLTON_GC_INTERNAL_FUNCS)) */ |
From: Stephen W. <sw...@ml...> - 2005-11-15 19:48:58
|
Switched ViewSVN references from trunk to release tag. ---------------------------------------------------------------------- U mlton/trunk/doc/guide/AST U mlton/trunk/doc/guide/AllocateRegisters U mlton/trunk/doc/guide/CKitLibrary U mlton/trunk/doc/guide/CallingFromCToSML U mlton/trunk/doc/guide/CallingFromSMLToC U mlton/trunk/doc/guide/CallingFromSMLToCFunctionPointer U mlton/trunk/doc/guide/Chunkify 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/CompilerOverview U mlton/trunk/doc/guide/CompilerPassTemplate U mlton/trunk/doc/guide/ConstantPropagation U mlton/trunk/doc/guide/Contify U mlton/trunk/doc/guide/CoreML U mlton/trunk/doc/guide/CoreMLSimplify U mlton/trunk/doc/guide/DeadCode U mlton/trunk/doc/guide/DeepFlatten U mlton/trunk/doc/guide/Defunctorize U mlton/trunk/doc/guide/Elaborate U mlton/trunk/doc/guide/Emacs U mlton/trunk/doc/guide/Enscript U mlton/trunk/doc/guide/Flatten U mlton/trunk/doc/guide/FrontEnd U mlton/trunk/doc/guide/FunctionalRecordUpdate U mlton/trunk/doc/guide/Globalize U mlton/trunk/doc/guide/HowProfilingWorks 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/Inline U mlton/trunk/doc/guide/InsertLimitChecks U mlton/trunk/doc/guide/InsertSignalChecks U mlton/trunk/doc/guide/IntroduceLoops U mlton/trunk/doc/guide/KnownCase U mlton/trunk/doc/guide/LambdaFree U mlton/trunk/doc/guide/Libraries U mlton/trunk/doc/guide/LocalFlatten U mlton/trunk/doc/guide/LocalRef U mlton/trunk/doc/guide/LoopInvariant U mlton/trunk/doc/guide/Machine U mlton/trunk/doc/guide/MatchCompile U mlton/trunk/doc/guide/Monomorphise U mlton/trunk/doc/guide/Multi U mlton/trunk/doc/guide/OpenGL U mlton/trunk/doc/guide/PackedRepresentation U mlton/trunk/doc/guide/ParallelMove U mlton/trunk/doc/guide/PolyEqual U mlton/trunk/doc/guide/Polyvariance U mlton/trunk/doc/guide/PrecedenceParse 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/Redundant U mlton/trunk/doc/guide/RedundantTests U mlton/trunk/doc/guide/RefFlatten U mlton/trunk/doc/guide/RemoveUnused U mlton/trunk/doc/guide/Restore U mlton/trunk/doc/guide/SMLNJLibrary 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/Shrink U mlton/trunk/doc/guide/SimplifyTypes U mlton/trunk/doc/guide/Sources U mlton/trunk/doc/guide/ToMachine U mlton/trunk/doc/guide/ToRSSA U mlton/trunk/doc/guide/ToSSA2 U mlton/trunk/doc/guide/Useless U mlton/trunk/doc/guide/WikiMacros 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/Zone ---------------------------------------------------------------------- Modified: mlton/trunk/doc/guide/AST =================================================================== --- mlton/trunk/doc/guide/AST 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/AST 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,22 +55,22 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</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-20051115-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/trunk/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-20051115-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-20051115-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/trunk/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-20051115-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-20051115-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/trunk/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-20051115-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/trunk/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-20051115-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/trunk/doc/guide/AllocateRegisters =================================================================== --- mlton/trunk/doc/guide/AllocateRegisters 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/AllocateRegisters 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</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-20051115-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/trunk/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-20051115-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/trunk/doc/guide/CKitLibrary =================================================================== --- mlton/trunk/doc/guide/CKitLibrary 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/CKitLibrary 2005-11-16 03:48:50 UTC (rev 4238) @@ -167,7 +167,7 @@ <li> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/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-20051115-release/lib/ckit-lib/ckit.patch?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ckit.patch</a> </p> </li> Modified: mlton/trunk/doc/guide/CallingFromCToSML =================================================================== --- mlton/trunk/doc/guide/CallingFromCToSML 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/CallingFromCToSML 2005-11-16 03:48:50 UTC (rev 4238) @@ -197,14 +197,14 @@ <li> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/trunk/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-20051115-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/trunk/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-20051115-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/trunk/doc/guide/CallingFromSMLToC =================================================================== --- mlton/trunk/doc/guide/CallingFromSMLToC 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/CallingFromSMLToC 2005-11-16 03:48:50 UTC (rev 4238) @@ -134,14 +134,14 @@ <li> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/trunk/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-20051115-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/trunk/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-20051115-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/trunk/doc/guide/CallingFromSMLToCFunctionPointer =================================================================== --- mlton/trunk/doc/guide/CallingFromSMLToCFunctionPointer 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/CallingFromSMLToCFunctionPointer 2005-11-16 03:48:50 UTC (rev 4238) @@ -210,7 +210,7 @@ <li> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/trunk/doc/examples/ffi/iimport.sml"><img src="moin-www.png" alt="[WWW]" height="11" width="11">iimport.sml</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/tags/on-20051115-release/doc/examples/ffi/iimport.sml"><img src="moin-www.png" alt="[WWW]" height="11" width="11">iimport.sml</a> </p> </li> Modified: mlton/trunk/doc/guide/Chunkify =================================================================== --- mlton/trunk/doc/guide/Chunkify 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/Chunkify 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/chunkify.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">chunkify.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/backend/chunkify.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">chunkify.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/chunkify.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">chunkify.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/backend/chunkify.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">chunkify.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> Breaking large <a href="RSSA">RSSA</a> functions into chunks is necessary for reasonable <tt>gcc</tt> compile times with the <a class="nonexistent" href="CCodegen">CCodegen</a>. Modified: mlton/trunk/doc/guide/ClosureConvert =================================================================== --- mlton/trunk/doc/guide/ClosureConvert 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/ClosureConvert 2005-11-16 03:48:50 UTC (rev 4238) @@ -61,9 +61,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/closure-convert/closure-convert.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">closure-convert.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/closure-convert/closure-convert.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">closure-convert.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/closure-convert/closure-convert.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">closure-convert.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/closure-convert/closure-convert.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">closure-convert.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> </div> Modified: mlton/trunk/doc/guide/CommonArg =================================================================== --- mlton/trunk/doc/guide/CommonArg 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/CommonArg 2005-11-16 03:48:50 UTC (rev 4238) @@ -82,9 +82,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/common-arg.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-arg.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/common-arg.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-arg.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/common-arg.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-arg.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/common-arg.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-arg.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> Three analyses were originally proposed to drive the optimization transformation. Only the <em>Dominator Analysis</em> is currently implemented. (Implementations of the other analyses are available in the Subversion repository.) Modified: mlton/trunk/doc/guide/CommonBlock =================================================================== --- mlton/trunk/doc/guide/CommonBlock 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/CommonBlock 2005-11-16 03:48:50 UTC (rev 4238) @@ -58,9 +58,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/common-block.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-block.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/common-block.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-block.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/common-block.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-block.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/common-block.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-block.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <ul> Modified: mlton/trunk/doc/guide/CommonSubexp =================================================================== --- mlton/trunk/doc/guide/CommonSubexp 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/CommonSubexp 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/common-subexp.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-subexp.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/common-subexp.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-subexp.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/common-subexp.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-subexp.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/common-subexp.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">common-subexp.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> In addition to getting the usual sorts of things like Modified: mlton/trunk/doc/guide/CompilerOverview =================================================================== --- mlton/trunk/doc/guide/CompilerOverview 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/CompilerOverview 2005-11-16 03:48:50 UTC (rev 4238) @@ -259,9 +259,9 @@ <p> The <tt>Compile</tt> functor ( -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/main/compile.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">compile.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/main/compile.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">compile.sig</a> , -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/main/compile.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">compile.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/main/compile.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">compile.fun</a> ), controls the high-level view of the compiler passes, from <a href="FrontEnd">FrontEnd</a> to code generation. </p> </div> Modified: mlton/trunk/doc/guide/CompilerPassTemplate =================================================================== --- mlton/trunk/doc/guide/CompilerPassTemplate 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/CompilerPassTemplate 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ZZZ.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ZZZ.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ZZZ.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ZZZ.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ZZZ.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ZZZ.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ZZZ.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ZZZ.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> Relevant details and notes. Modified: mlton/trunk/doc/guide/ConstantPropagation =================================================================== --- mlton/trunk/doc/guide/ConstantPropagation 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/ConstantPropagation 2005-11-16 03:48:50 UTC (rev 4238) @@ -61,9 +61,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/constant-propagation.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">constant-propagation.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/constant-propagation.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">constant-propagation.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/constant-propagation.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">constant-propagation.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/constant-propagation.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">constant-propagation.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> </div> Modified: mlton/trunk/doc/guide/Contify =================================================================== --- mlton/trunk/doc/guide/Contify 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/Contify 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/contify.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">contify.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/contify.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">contify.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/contify.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">contify.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/contify.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">contify.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> See <a href = "References#FluetWeeks01">Contification Using Dominators</a>. The intermediate language described in that paper has since evolved to the <a href="SSA">SSA</a> <a href="IntermediateLanguage">IntermediateLanguage</a>; hence, the complication described in Section 6.1 is no longer relevant. Modified: mlton/trunk/doc/guide/CoreML =================================================================== --- mlton/trunk/doc/guide/CoreML 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/CoreML 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/core-ml/core-ml.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">core-ml.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/core-ml/core-ml.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">core-ml.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/core-ml/core-ml.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">core-ml.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/core-ml/core-ml.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">core-ml.fun</a> <h2 id="head-a6de4b535fedeaa8890bd890b60fe09f87b5f96a">Type Checking</h2> <p> The CoreML <a href="IntermediateLanguage">IntermediateLanguage</a> has no independent type checker. Modified: mlton/trunk/doc/guide/CoreMLSimplify =================================================================== --- mlton/trunk/doc/guide/CoreMLSimplify 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/CoreMLSimplify 2005-11-16 03:48:50 UTC (rev 4238) @@ -50,7 +50,7 @@ </table> <div id="content" lang="en" dir="ltr"> The single optimization pass for the <a href="CoreML">CoreML</a> <a href="IntermediateLanguage">IntermediateLanguage</a> is controlled by the <tt>Compile</tt> functor ( -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/main/compile.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">compile.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/main/compile.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">compile.fun</a> ). <p> The following optimization pass is implemented: </p> Modified: mlton/trunk/doc/guide/DeadCode =================================================================== --- mlton/trunk/doc/guide/DeadCode 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/DeadCode 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/core-ml/dead-code.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">dead-code.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/core-ml/dead-code.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">dead-code.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/core-ml/dead-code.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">dead-code.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/core-ml/dead-code.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">dead-code.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> In order to compile small programs rapidly, a pass of dead code elimination is run in order to eliminate as much of the Basis Library as possible. The dead code elimination algorithm used is not safe in general, and only works because the Basis Library implementation has special properties: Modified: mlton/trunk/doc/guide/DeepFlatten =================================================================== --- mlton/trunk/doc/guide/DeepFlatten 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/DeepFlatten 2005-11-16 03:48:50 UTC (rev 4238) @@ -61,9 +61,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/deep-flatten.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">deep-flatten.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/deep-flatten.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">deep-flatten.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/deep-flatten.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">deep-flatten.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/deep-flatten.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">deep-flatten.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> </div> Modified: mlton/trunk/doc/guide/Defunctorize =================================================================== --- mlton/trunk/doc/guide/Defunctorize 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/Defunctorize 2005-11-16 03:48:50 UTC (rev 4238) @@ -87,9 +87,9 @@ <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/defunctorize/defunctorize.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">defunctorize.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/defunctorize/defunctorize.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">defunctorize.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/defunctorize/defunctorize.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">defunctorize.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/defunctorize/defunctorize.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">defunctorize.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> This pass is grossly misnamed (a consequence of the implementation of an <a href="Elaborate">Elaborate</a> pass that follows the <a href="DefinitionOfStandardML"> Definition</a> and produces readable error messages). Modified: mlton/trunk/doc/guide/Elaborate =================================================================== --- mlton/trunk/doc/guide/Elaborate 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/Elaborate 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,27 +55,27 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate/elaborate.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate/elaborate.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate/elaborate.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate/elaborate.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate.fun</a> <br> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate/elaborate-env.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate-env.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate/elaborate-env.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate-env.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate/elaborate-env.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate-env.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate/elaborate-env.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate-env.fun</a> <br> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate/elaborate-modules.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate-modules.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate/elaborate-modules.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate-modules.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate/elaborate-modules.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate-modules.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate/elaborate-modules.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate-modules.fun</a> <br> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate/elaborate-core.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate-core.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate/elaborate-core.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate-core.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate/elaborate-core.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate-core.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate/elaborate-core.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate-core.fun</a> <br> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate"><img src="moin-www.png" alt="[WWW]" height="11" width="11">elaborate</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> At the modules level, the Elaborate pass: @@ -86,9 +86,9 @@ <li> <p> elaborates signatures with interfaces (see -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate/interface.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">interface.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate/interface.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">interface.sig</a> and -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate/interface.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">interface.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate/interface.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">interface.fun</a> ). </p> </li> @@ -120,9 +120,9 @@ <ul> This is implemented by building a dummy structure realized from the signature, just as we would for a functor argument when type checking a functor. The dummy structure contains exactly the type information that is in the signature, which is what opacity requires. We then replace the variables (and constructors) in the dummy structure with the corresponding variables (and constructors) from the actual structure so that the translation to <a href="CoreML">CoreML</a> uses the right stuff. For each tycon in the dummy structure, we keep track of the corresponding type structure in the actual structure. This is used when producing the <a href="CoreML">CoreML</a> types (see <tt>expandOpaque</tt> in -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate/type-env.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">type-env.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate/type-env.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">type-env.sig</a> and -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/elaborate/type-env.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">type-env.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/elaborate/type-env.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">type-env.fun</a> ). </ul> Modified: mlton/trunk/doc/guide/Emacs =================================================================== --- mlton/trunk/doc/guide/Emacs 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/Emacs 2005-11-16 03:48:50 UTC (rev 4238) @@ -83,7 +83,7 @@ <li class="gap"> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/ide/emacs/mlton.el?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">mlton.el</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/ide/emacs/mlton.el?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">mlton.el</a> contains the Emacs lisp that <a href="StephenWeeks">StephenWeeks</a> uses to interact with MLton (in addition to using <tt>sml-mode</tt>). </p> </li> @@ -113,7 +113,7 @@ <li> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/ide/emacs/esml-mlb-mode.el?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">esml-mlb-mode.el</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/ide/emacs/esml-mlb-mode.el?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">esml-mlb-mode.el</a> </p> </li> Modified: mlton/trunk/doc/guide/Enscript =================================================================== --- mlton/trunk/doc/guide/Enscript 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/Enscript 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,7 +55,7 @@ <li> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/ide/enscript/sml_simple.st?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">sml_simple.st</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/ide/enscript/sml_simple.st?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">sml_simple.st</a> -- Provides highlighting of keywords, string and character constants, and (nested) comments. <pre class=code> <I><FONT COLOR="#B22222">(* Comments (* can be nested *) *)</FONT></I> @@ -69,7 +69,7 @@ <li class="gap"> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/ide/enscript/sml_verbose.st?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">sml_verbose.st</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/ide/enscript/sml_verbose.st?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">sml_verbose.st</a> -- Supersedes the above, adding highlighting of numeric constants. Due to the limited parsing available, numeric record labels are highlighted as numeric constants, in all contexts. Likewise, a binding precedence separated from <tt>infix</tt> or <tt>infixr</tt> by a newline is highlighted as a numeric constant and a numeric record label selector separated from <tt>#</tt> by a newline is highlighted as a numeric constant. </p> @@ -93,7 +93,7 @@ <li class="gap"> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/ide/enscript/sml_fancy.st?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">sml_fancy.st</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/ide/enscript/sml_fancy.st?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">sml_fancy.st</a> -- Supersedes the above, adding highlighting of type and constructor bindings, highlighting of explicit binding of type variables at <tt>val</tt> and <tt>fun</tt> declarations, and separate highlighting of core and modules level keywords. Due to the limited parsing available, it is assumed that the input is a syntactically correct, top-level declaration. <pre class=code> <B><FONT COLOR="#0000FF">structure</FONT></B> S = <B><FONT COLOR="#0000FF">struct</FONT></B> @@ -116,7 +116,7 @@ <li class="gap"> <p> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/ide/enscript/sml_gaudy.st?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">sml_gaudy.st</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/ide/enscript/sml_gaudy.st?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">sml_gaudy.st</a> -- Supersedes the above, adding highlighting of type annotations, in both expressions and signatures. Due to the limited parsing available, it is assumed that the input is a syntactically correct, top-level declaration. <pre class=code> <B><FONT COLOR="#0000FF">signature</FONT></B> S = <B><FONT COLOR="#0000FF">sig</FONT></B> @@ -175,7 +175,7 @@ <li> <p> Append -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/ide/enscript/sml_all.st?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">sml_all.st</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/ide/enscript/sml_all.st?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">sml_all.st</a> to <tt>/usr/share/enscript/enscript.st</tt> </p> </li> Modified: mlton/trunk/doc/guide/Flatten =================================================================== --- mlton/trunk/doc/guide/Flatten 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/Flatten 2005-11-16 03:48:50 UTC (rev 4238) @@ -103,9 +103,9 @@ <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/flatten.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">flatten.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/flatten.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">flatten.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/flatten.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">flatten.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/flatten.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">flatten.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> </div> Modified: mlton/trunk/doc/guide/FrontEnd =================================================================== --- mlton/trunk/doc/guide/FrontEnd 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/FrontEnd 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,18 +55,18 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/front-end/front-end.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">front-end.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/front-end/front-end.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">front-end.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/front-end/front-end.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">front-end.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/front-end/front-end.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">front-end.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> The lexer is produced by <a class="nonexistent" href="MLLex">MLLex</a> from -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/front-end/ml.lex?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ml.lex</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/front-end/ml.lex?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ml.lex</a> . </p> <p> The parser is produced by <a class="nonexistent" href="MLYacc">MLYacc</a> from -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/front-end/ml.grm?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ml.grm</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/front-end/ml.grm?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">ml.grm</a> . </p> <p> Modified: mlton/trunk/doc/guide/FunctionalRecordUpdate =================================================================== --- mlton/trunk/doc/guide/FunctionalRecordUpdate 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/FunctionalRecordUpdate 2005-11-16 03:48:50 UTC (rev 4238) @@ -217,7 +217,7 @@ </p> <p> The MLton SVN contains Emacs functions in -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/ide/emacs/esml-gen.el?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">esml-gen.el</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/ide/emacs/esml-gen.el?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">esml-gen.el</a> to generate functional tuple update functions and functional record update functions. For example, to generate a <tt>set</tt> function for the record <tt>{a, b, c</tt>} it is sufficient to type <tt>M x esml-gen-fru-setter a b c</tt>. </p> <h2 id="head-12c4ffe1d987164a4bedf6ab2aac597a113e181c">Efficiency</h2> Modified: mlton/trunk/doc/guide/Globalize =================================================================== --- mlton/trunk/doc/guide/Globalize 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/Globalize 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/closure-convert/globalize.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">globalize.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/closure-convert/globalize.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">globalize.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/closure-convert/globalize.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">globalize.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/closure-convert/globalize.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">globalize.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> </div> Modified: mlton/trunk/doc/guide/HowProfilingWorks =================================================================== --- mlton/trunk/doc/guide/HowProfilingWorks 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/HowProfilingWorks 2005-11-16 03:48:50 UTC (rev 4238) @@ -73,7 +73,7 @@ </p> <p> There is the <tt>checkProf</tt> function in -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/type-check.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">type-check.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/type-check.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">type-check.fun</a> , which checks that the <tt>Enter</tt>/<tt>Leave</tt> statements match up. </p> <p> Modified: mlton/trunk/doc/guide/ImplementExceptions =================================================================== --- mlton/trunk/doc/guide/ImplementExceptions 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/ImplementExceptions 2005-11-16 03:48:50 UTC (rev 4238) @@ -58,9 +58,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/xml/implement-exceptions.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">implement-exceptions.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/xml/implement-exceptions.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">implement-exceptions.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/xml/implement-exceptions.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">implement-exceptions.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/xml/implement-exceptions.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">implement-exceptions.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> </div> Modified: mlton/trunk/doc/guide/ImplementHandlers =================================================================== --- mlton/trunk/doc/guide/ImplementHandlers 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/ImplementHandlers 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/implement-handlers.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">implement-handlers.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/backend/implement-handlers.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">implement-handlers.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/implement-handlers.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">implement-handlers.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/backend/implement-handlers.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">implement-handlers.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> </div> Modified: mlton/trunk/doc/guide/ImplementProfiling =================================================================== --- mlton/trunk/doc/guide/ImplementProfiling 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/ImplementProfiling 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/profile.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">profile.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/backend/profile.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">profile.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/profile.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">profile.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/backend/profile.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">profile.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> See <a href="HowProfilingWorks">HowProfilingWorks</a>. Modified: mlton/trunk/doc/guide/ImplementSuffix =================================================================== --- mlton/trunk/doc/guide/ImplementSuffix 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/ImplementSuffix 2005-11-16 03:48:50 UTC (rev 4238) @@ -58,9 +58,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/xml/implement-suffix.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">implement-suffix.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/xml/implement-suffix.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">implement-suffix.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/xml/implement-suffix.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">implement-suffix.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/xml/implement-suffix.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">implement-suffix.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> ImplementSuffix works by introducing a new <tt>ref</tt> cell to contain the function of type <tt>unit -> unit</tt> that should be called on program exit. Modified: mlton/trunk/doc/guide/Inline =================================================================== --- mlton/trunk/doc/guide/Inline 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/Inline 2005-11-16 03:48:50 UTC (rev 4238) @@ -58,9 +58,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/inline.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">inline.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/inline.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">inline.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/inline.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">inline.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/inline.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">inline.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> The Inline pass can be invoked to use one of three metrics: Modified: mlton/trunk/doc/guide/InsertLimitChecks =================================================================== --- mlton/trunk/doc/guide/InsertLimitChecks 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/InsertLimitChecks 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/limit-check.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">limit-check.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/backend/limit-check.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">limit-check.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/limit-check.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">limit-check.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/backend/limit-check.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">limit-check.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> </div> Modified: mlton/trunk/doc/guide/InsertSignalChecks =================================================================== --- mlton/trunk/doc/guide/InsertSignalChecks 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/InsertSignalChecks 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/limit-check.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">limit-check.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/backend/limit-check.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">limit-check.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/backend/limit-check.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">limit-check.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/backend/limit-check.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">limit-check.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> </div> Modified: mlton/trunk/doc/guide/IntroduceLoops =================================================================== --- mlton/trunk/doc/guide/IntroduceLoops 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/IntroduceLoops 2005-11-16 03:48:50 UTC (rev 4238) @@ -79,9 +79,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/introduce-loops.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">introduce-loops.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/introduce-loops.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">introduce-loops.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/introduce-loops.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">introduce-loops.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/introduce-loops.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">introduce-loops.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> </div> Modified: mlton/trunk/doc/guide/KnownCase =================================================================== --- mlton/trunk/doc/guide/KnownCase 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/KnownCase 2005-11-16 03:48:50 UTC (rev 4238) @@ -105,9 +105,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/known-case.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">known-case.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/known-case.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">known-case.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/ssa/known-case.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">known-case.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/ssa/known-case.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">known-case.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> One interesting aspect of KnownCase, is that it often has the effect of unrolling list traversals by one iteration, moving the <tt>nil</tt>/<tt>::</tt> check to the end of the loop, rather than the beginning. Modified: mlton/trunk/doc/guide/LambdaFree =================================================================== --- mlton/trunk/doc/guide/LambdaFree 2005-11-16 03:47:54 UTC (rev 4237) +++ mlton/trunk/doc/guide/LambdaFree 2005-11-16 03:48:50 UTC (rev 4238) @@ -55,9 +55,9 @@ </p> <h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/closure-convert/lambda-free.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">lambda-free.sig</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/closure-convert/lambda-free.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">lambda-free.sig</a> -<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/mlton/closure-convert/lambda-free.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">lambda-free.fun</a> +<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-20051115-release/mlton/closure-convert/lambda-free.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">lambda-free.fun</a> <h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2> <p> For <tt>Lambda</tt>s bound in a <tt>Fun</tt> dec, <tt>lambdaFree</tt> gives the union of the frees of the entire group of mutually recursive functions. Hence, <tt>lambdaFree</tt> for every <tt>Lambda</tt> in a single <tt>Fun</tt> dec is the same. Furthermore, for a <tt>Lambda</tt> bound... [truncated message content] |
From: Stephen W. <sw...@ml...> - 2005-11-15 19:47:55
|
Changed a default. ---------------------------------------------------------------------- U mlton/trunk/bin/grab-wiki ---------------------------------------------------------------------- Modified: mlton/trunk/bin/grab-wiki =================================================================== --- mlton/trunk/bin/grab-wiki 2005-11-16 02:37:43 UTC (rev 4236) +++ mlton/trunk/bin/grab-wiki 2005-11-16 03:47:54 UTC (rev 4237) @@ -29,7 +29,7 @@ index='.index' script='.script' tmp='.tmp' -useLocal='true' +useLocal='false' version=`date +%Y%m%d` cd "$src/doc/guide" |
From: Matthew F. <fl...@ml...> - 2005-11-15 18:37:44
|
Change in MLton.ProcEnv ---------------------------------------------------------------------- U mlton/trunk/basis-library/mlton/proc-env.sml ---------------------------------------------------------------------- Modified: mlton/trunk/basis-library/mlton/proc-env.sml =================================================================== --- mlton/trunk/basis-library/mlton/proc-env.sml 2005-11-16 01:57:08 UTC (rev 4235) +++ mlton/trunk/basis-library/mlton/proc-env.sml 2005-11-16 02:37:43 UTC (rev 4236) @@ -8,6 +8,8 @@ structure MLtonProcEnv: MLTON_PROC_ENV = struct + type gid = PosixPrimitive.ProcEnv.gid + fun setenv {name, value} = let val name = NullString.nullTerm name |