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
(2) |
Oct
(3) |
Nov
|
Dec
|
|
From: Stephen W. <sw...@ml...> - 2005-11-30 10:40:17
|
Tweaked call to htmldoc. ---------------------------------------------------------------------- U mlton/trunk/bin/make-pdf-guide U mlton/trunk/package/freebsd/files/patch-bin::make-pdf-guide ---------------------------------------------------------------------- Modified: mlton/trunk/bin/make-pdf-guide =================================================================== --- mlton/trunk/bin/make-pdf-guide 2005-11-30 18:39:11 UTC (rev 4262) +++ mlton/trunk/bin/make-pdf-guide 2005-11-30 18:40:14 UTC (rev 4263) @@ -127,7 +127,7 @@ ) >$book echo 'Running htmldoc.' -htmldoc --batch $book +htmldoc --batch $book || true mv $pdf $src/doc/guide Modified: mlton/trunk/package/freebsd/files/patch-bin::make-pdf-guide =================================================================== --- mlton/trunk/package/freebsd/files/patch-bin::make-pdf-guide 2005-11-30 18:39:11 UTC (rev 4262) +++ mlton/trunk/package/freebsd/files/patch-bin::make-pdf-guide 2005-11-30 18:40:14 UTC (rev 4263) @@ -9,12 +9,4 @@ mv .tmp $f done -@@ -127,7 +127,7 @@ - ) >$book - echo 'Running htmldoc.' --htmldoc --batch $book -+htmldoc --batch $book || true - - mv $pdf $src/doc/guide - |
|
From: Stephen W. <sw...@ml...> - 2005-11-30 10:39:13
|
Another FreeBSD patch from Geoff Mainland.
----------------------------------------------------------------------
U mlton/trunk/bytecode/Makefile
U mlton/trunk/package/freebsd/Makefile
A mlton/trunk/package/freebsd/files/
A mlton/trunk/package/freebsd/files/patch-bin::make-pdf-guide
----------------------------------------------------------------------
Modified: mlton/trunk/bytecode/Makefile
===================================================================
--- mlton/trunk/bytecode/Makefile 2005-11-30 03:05:54 UTC (rev 4261)
+++ mlton/trunk/bytecode/Makefile 2005-11-30 18:39:11 UTC (rev 4262)
@@ -16,6 +16,10 @@
CFLAGS += -mtune=opteron -m32
endif
+ifeq ($(TARGET_OS), freebsd)
+CFLAGS += -I/usr/local/include
+endif
+
interpret.o: interpret.c interpret.h opcode.h
$(CC) $(CFLAGS) -c -O2 interpret.c
Modified: mlton/trunk/package/freebsd/Makefile
===================================================================
--- mlton/trunk/package/freebsd/Makefile 2005-11-30 03:05:54 UTC (rev 4261)
+++ mlton/trunk/package/freebsd/Makefile 2005-11-30 18:39:11 UTC (rev 4262)
@@ -23,7 +23,9 @@
BUILD_DEPENDS= bash:${PORTSDIR}/shells/bash
.if !defined(NOPORTDOCS)
-BUILD_DEPENDS+= latex:${PORTSDIR}/print/teTeX
+BUILD_DEPENDS+= gsed:${PORTSDIR}/textproc/gsed \
+ htmldoc:${PORTSDIR}/textproc/htmldoc \
+ latex:${PORTSDIR}/print/teTeX
.endif
LIB_DEPENDS= gmp.6:${PORTSDIR}/math/libgmp4
RUN_DEPENDS= bash:${PORTSDIR}/shells/bash
@@ -46,9 +48,6 @@
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
@@ -61,6 +60,10 @@
LIB_DEPENDS+= c.5:${PORTSDIR}/misc/compat5x
.endif
+.if ${OSVERSION} >= 503000
+LIB_DEPENDS+= m.2:${PORTSDIR}/misc/compat4x
+.endif
+
BOOT_EXTRACT= --bzip2
BOOT_SUF= tbz
BOOT_VER= 20041109
@@ -72,6 +75,14 @@
"s|lib=\'${LOCALBASE}/|lib=\'${BOOT_WRKSRC}/|" \
${BOOT_WRKSRC}/bin/mlton
+post-patch:
+ @${REINPLACE_CMD} -e \
+ "s|FLAGS += -I/usr/local/include|FLAGS += -I${LOCALBASE}/include|" \
+ ${WRKSRC}/runtime/Makefile
+ @${REINPLACE_CMD} -e \
+ "s|CFLAGS += -I/usr/local/include|CFLAGS += -I${LOCALBASE}/include|" \
+ ${WRKSRC}/bytecode/Makefile
+
post-install:
.for bin in mllex mlnlffigen mlprof mlton mlyacc
${CHOWN} ${SHAREOWN}:${SHAREGRP} ${PREFIX}/bin/${bin} \
@@ -103,11 +114,11 @@
${MAKE} install
${MAKE} package
${MAKE} deinstall
- pkg_add ${PKGREPOSITORY}/${PORTNAME}-${PORTVERSION}.tbz
+ pkg_add ${PORTNAME}-${PORTVERSION}.tbz
${MAKE} deinstall
${MAKE} reinstall
${MAKE} package
- ${CP} ${PKGREPOSITORY}/${PORTNAME}-${PORTVERSION}.tbz \
+ ${CP} ${PORTNAME}-${PORTVERSION}.tbz \
${DISTDIR}/${PORTNAME}-${PORTVERSION}-${RELEASE}.i386-freebsd.tbz
${TAR} -cpf - Makefile distinfo pkg-descr pkg-plist | \
( ${MKDIR} ${PORTDIR} && cd ${PORTDIR} && ${TAR} -xpf - )
@@ -117,8 +128,7 @@
PLIST= ${.CURDIR}/pkg-plist
pkg-plist:
-# XXX Temporary, until docs install is fixed in main Makefile
- cd ${WRKSRC} && ${GMAKE} install-no-docs
+ cd ${WRKSRC} && ${GMAKE} install
cd ${WRKSRC}/install/usr && \
${FIND} -d * \! -type d | ${GREP} -v man/man | \
${SORT} >${PLIST}
Added: mlton/trunk/package/freebsd/files/patch-bin::make-pdf-guide
===================================================================
--- mlton/trunk/package/freebsd/files/patch-bin::make-pdf-guide 2005-11-30 03:05:54 UTC (rev 4261)
+++ mlton/trunk/package/freebsd/files/patch-bin::make-pdf-guide 2005-11-30 18:39:11 UTC (rev 4262)
@@ -0,0 +1,20 @@
+--- bin/make-pdf-guide.orig Wed Nov 30 00:44:19 2005
++++ bin/make-pdf-guide Wed Nov 30 00:44:33 2005
+@@ -52,7 +52,7 @@
+ 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
++ gsed -f $script <$f >.tmp
+ mv .tmp $f
+ done
+
+@@ -127,7 +127,7 @@
+ ) >$book
+
+ echo 'Running htmldoc.'
+-htmldoc --batch $book
++htmldoc --batch $book || true
+
+ mv $pdf $src/doc/guide
+
|
|
From: Stephen W. <sw...@ml...> - 2005-11-29 19:05:55
|
Remove hevea from BUILD_DEPENDS, because it is no longer needed in
building the docs.
----------------------------------------------------------------------
U mlton/trunk/package/freebsd/Makefile
----------------------------------------------------------------------
Modified: mlton/trunk/package/freebsd/Makefile
===================================================================
--- mlton/trunk/package/freebsd/Makefile 2005-11-29 23:09:12 UTC (rev 4260)
+++ mlton/trunk/package/freebsd/Makefile 2005-11-30 03:05:54 UTC (rev 4261)
@@ -23,8 +23,7 @@
BUILD_DEPENDS= bash:${PORTSDIR}/shells/bash
.if !defined(NOPORTDOCS)
-BUILD_DEPENDS+= hevea:${PORTSDIR}/textproc/hevea \
- latex:${PORTSDIR}/print/teTeX
+BUILD_DEPENDS+= latex:${PORTSDIR}/print/teTeX
.endif
LIB_DEPENDS= gmp.6:${PORTSDIR}/math/libgmp4
RUN_DEPENDS= bash:${PORTSDIR}/shells/bash
|
|
From: Stephen W. <sw...@ml...> - 2005-11-29 15:09:14
|
Added -I/usr/local/include on FreeBSD to get gmp.h.
----------------------------------------------------------------------
U mlton/trunk/bin/mlton-script
U mlton/trunk/runtime/Makefile
----------------------------------------------------------------------
Modified: mlton/trunk/bin/mlton-script
===================================================================
--- mlton/trunk/bin/mlton-script 2005-11-29 18:46:19 UTC (rev 4259)
+++ mlton/trunk/bin/mlton-script 2005-11-29 23:09:12 UTC (rev 4260)
@@ -84,6 +84,7 @@
'-m32
-mtune=opteron' \
-target-cc-opt darwin '-I/sw/include' \
+ -target-cc-opt freebsd '-I/usr/local/include' \
-target-cc-opt solaris \
'-Wa,-xarch=v8plusa
-mcpu=ultrasparc' \
Modified: mlton/trunk/runtime/Makefile
===================================================================
--- mlton/trunk/runtime/Makefile 2005-11-29 18:46:19 UTC (rev 4259)
+++ mlton/trunk/runtime/Makefile 2005-11-29 23:09:12 UTC (rev 4260)
@@ -31,6 +31,10 @@
FLAGS += -mcpu=v8 -m32
endif
+ifeq ($(TARGET_OS), freebsd)
+FLAGS += -I/usr/local/include
+endif
+
ifeq ($(TARGET_OS), solaris)
FLAGS += -Wa,-xarch=v8plusa -funroll-all-loops -mcpu=ultrasparc
endif
|
|
From: Matthew F. <fl...@ml...> - 2005-11-29 10:46:22
|
Outdated PHONY target ---------------------------------------------------------------------- U mlton/trunk/Makefile ---------------------------------------------------------------------- Modified: mlton/trunk/Makefile =================================================================== --- mlton/trunk/Makefile 2005-11-29 18:45:55 UTC (rev 4258) +++ mlton/trunk/Makefile 2005-11-29 18:46:19 UTC (rev 4259) @@ -86,14 +86,6 @@ clean-svn: find . -type d | grep .svn | xargs rm -rf -.PHONY: cm -cm: - $(MAKE) -C $(COMP) mlton-stubs_cm - $(MAKE) -C $(LEX) mllex_cm - $(MAKE) -C $(PROF) mlprof_cm - $(MAKE) -C $(YACC) mlyacc_cm - $(MAKE) -C benchmark benchmark_cm - .PHONY: compiler compiler: $(MAKE) -C $(COMP) |
|
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;
|