[MLton-commit] r7545
Matthew Fluet
fluet at mlton.org
Sat Jun 11 14:23:40 PDT 2011
Update SML/NJ libraries to 110.73; add ML-LPT libraries.
----------------------------------------------------------------------
U mlton/trunk/Makefile
U mlton/trunk/lib/ckit-lib/ckit.patch
U mlton/trunk/lib/ckit-lib/ckit.tgz
A mlton/trunk/lib/mllpt-lib/
A mlton/trunk/lib/mllpt-lib/.ignore
A mlton/trunk/lib/mllpt-lib/Makefile
A mlton/trunk/lib/mllpt-lib/ml-lpt.patch
A mlton/trunk/lib/mllpt-lib/ml-lpt.tgz
U mlton/trunk/lib/mlrisc-lib/MLRISC.patch
U mlton/trunk/lib/mlrisc-lib/MLRISC.tgz
U mlton/trunk/lib/smlnj-lib/smlnj-lib.patch
U mlton/trunk/lib/smlnj-lib/smlnj-lib.tgz
U mlton/trunk/util/cm2mlb/cm2mlb-map
U mlton/trunk/util/cm2mlb/cm2mlb.sml
----------------------------------------------------------------------
Modified: mlton/trunk/Makefile
===================================================================
--- mlton/trunk/Makefile 2011-06-10 19:46:13 UTC (rev 7544)
+++ mlton/trunk/Makefile 2011-06-11 21:23:09 UTC (rev 7545)
@@ -134,13 +134,14 @@
bin/make-pdf-guide; \
fi
-LIBRARIES := ckit-lib cml mlnlffi-lib mlrisc-lib mlyacc-lib smlnj-lib
+LIBRARIES := ckit-lib cml mllpt-lib mlnlffi-lib mlrisc-lib mlyacc-lib smlnj-lib
.PHONY: libraries-no-check
libraries-no-check:
mkdir -p "$(LIB)/sml"
cd "$(LIB)/sml" && rm -rf $(LIBRARIES)
$(MAKE) -C "$(SRC)/lib/ckit-lib"
+ $(MAKE) -C "$(SRC)/lib/mllpt-lib"
$(MAKE) -C "$(SRC)/lib/mlnlffi-lib"
$(MAKE) -C "$(SRC)/lib/mlrisc-lib"
$(MAKE) -C "$(SRC)/lib/smlnj-lib"
@@ -148,6 +149,7 @@
$(CP) "$(SRC)/lib/ckit-lib/ckit/." "$(LIB)/sml/ckit-lib"
$(CP) "$(SRC)/lib/mlnlffi-lib/." "$(LIB)/sml/mlnlffi-lib"
$(CP) "$(SRC)/lib/mlrisc-lib/MLRISC/." "$(LIB)/sml/mlrisc-lib"
+ $(CP) "$(SRC)/lib/mllpt-lib/ml-lpt/lib/." "$(LIB)/sml/mllpt-lib"
$(CP) "$(SRC)/lib/mlyacc-lib/." "$(LIB)/sml/mlyacc-lib"
$(CP) "$(SRC)/lib/smlnj-lib/smlnj-lib/." "$(LIB)/sml/smlnj-lib"
find "$(LIB)/sml" -type d -name .cm | xargs rm -rf
Modified: mlton/trunk/lib/ckit-lib/ckit.patch
===================================================================
--- mlton/trunk/lib/ckit-lib/ckit.patch 2011-06-10 19:46:13 UTC (rev 7544)
+++ mlton/trunk/lib/ckit-lib/ckit.patch 2011-06-11 21:23:09 UTC (rev 7545)
@@ -1,1847 +1,1628 @@
-diff -N -C 2 -r ckit/README.mlton ckit-mlton/README.mlton
-*** ckit/README.mlton 1969-12-31 19:00:00.000000000 -0500
---- ckit-mlton/README.mlton 2010-02-18 11:59:02.000000000 -0500
-***************
-*** 0 ****
---- 1,14 ----
-+ The following changes were made to the ckit Library, in addition to
-+ deriving the {{{.mlb}}} file from the {{{.cm}}} files:
-+ * {{{parser/parse-tree-sig.sml}}} (modified): Rewrote use of (sequential) {{{withtype}}} in signature.
-+ * {{{parser/parse-tree.sml}}} (modified): Rewrote use of (sequential) {{{withtype}}}.
-+ * {{{parser/grammar/c.lex.sml}}} (modified): Rewrote use of vector literal.
-+ * {{{ast/ast-sig.sml}}} (modified): Rewrote use of {{{withtype}}} in signature.
-+ * {{{ast/pp/pp-lib.sml}}} (modified): Rewrote use of ''or-patterns''.
-+ * {{{ast/pp/pp-ast-ext-sig.sml}}} (modified): Rewrote use of {{{signature}}} in {{{local}}}.
-+ * {{{ast/pp/pp-ast-adornment-sig.sml}}} (modified): Rewrote use of {{{signature}}} in {{{local}}}.
-+ * {{{ast/type-util-sig.sml}}} (modified): Rewrote use of {{{signature}}} in {{{local}}}.
-+ * {{{ast/type-util.sml}}} (modified): Rewrote use of ''or-patterns''.
-+ * {{{ast/sizeof.sml}}} (modified): Rewrote use of ''or-patterns''.
-+ * {{{ast/initializer-normalizer.sml}}} (modified): Rewrote use of ''or-patterns''.
-+ * {{{ast/build-ast.sml}}} (modified): Rewrote use of ''or-patterns''.
-diff -N -C 2 -r 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 2009-03-27 18:24:18.000000000 -0400
-***************
-*** 0 ****
---- 1 ----
-+ src/ckit-lib.mlb
-diff -N -C 2 -r ckit/src/ast/ast-sig.sml ckit-mlton/src/ast/ast-sig.sml
-*** ckit/src/ast/ast-sig.sml 2010-02-03 11:40:52.000000000 -0500
---- ckit-mlton/src/ast/ast-sig.sml 2009-03-27 18:28:04.000000000 -0400
-***************
-*** 68,72 ****
- = TypeDecl of {shadow: {strct:bool} option, tid:tid}
- (* placeholder to indicate where typedefs/enums/structs should be printed *)
-! | VarDecl of id * initExpression option
-
-
---- 68,77 ----
- = TypeDecl of {shadow: {strct:bool} option, tid:tid}
- (* placeholder to indicate where typedefs/enums/structs should be printed *)
-! | VarDecl of
-! (* id *) {name: Symbol.symbol, uid: Pid.uid,
-! location: SourceMap.location, ctype: ctype,
-! stClass: storageClass, status: declStatus,
-! global: bool, kind: idKind} *
-! initExpression option
-
-
-***************
-*** 107,112 ****
- | Comma of expression * expression
- | Sub of expression * expression
-! | Member of expression * member
-! | Arrow of expression * member
- | Deref of expression
- | AddrOf of expression
---- 112,125 ----
- | Comma of expression * expression
- | Sub of expression * expression
-! | Member of
-! expression *
-! (* member *) {name: Symbol.symbol, uid : Pid.uid,
-! location : SourceMap.location,
-! ctype: ctype, kind: memberKind}
-! | Arrow of
-! expression *
-! (* member *) {name: Symbol.symbol, uid : Pid.uid,
-! location : SourceMap.location,
-! ctype: ctype, kind: memberKind}
- | Deref of expression
- | AddrOf of expression
-***************
-*** 114,119 ****
- | Unop of unop * expression
- | Cast of ctype * expression
-! | Id of id
-! | EnumId of member * LargeInt.int
- | SizeOf of ctype (* not used in compiler mode; sizeof expr becomes sizeof (typeof expr) *)
- | ExprExt of (expression, statement, binop, unop) AstExt.expressionExt
---- 127,140 ----
- | Unop of unop * expression
- | Cast of ctype * expression
-! | Id of
-! (* id *) {name: Symbol.symbol, uid: Pid.uid,
-! location: SourceMap.location, ctype: ctype,
-! stClass: storageClass, status: declStatus,
-! global: bool, kind: idKind}
-! | EnumId of
-! (* member *) {name: Symbol.symbol, uid : Pid.uid,
-! location : SourceMap.location,
-! ctype: ctype, kind: memberKind} *
-! LargeInt.int
- | SizeOf of ctype (* not used in compiler mode; sizeof expr becomes sizeof (typeof expr) *)
- | ExprExt of (expression, statement, binop, unop) AstExt.expressionExt
-***************
-*** 132,136 ****
- | Array of (LargeInt.int * expression) option * ctype
- | Pointer of ctype
-! | Function of ctype * (ctype * id option) list
- | StructRef of tid (* reference to a tid bound by a struct decl *)
- | UnionRef of tid (* reference to a tid bound by a union decl *)
---- 153,163 ----
- | Array of (LargeInt.int * expression) option * ctype
- | Pointer of ctype
-! | Function of
-! ctype *
-! (ctype *
-! (* id *) {name: Symbol.symbol, uid: Pid.uid,
-! location: SourceMap.location, ctype: ctype,
-! stClass: storageClass, status: declStatus,
-! global: bool, kind: idKind} option) list
- | StructRef of tid (* reference to a tid bound by a struct decl *)
- | UnionRef of tid (* reference to a tid bound by a union decl *)
-***************
-*** 152,156 ****
- | ENUMmem of LargeInt.int
-
-! withtype member =
- {name: Symbol.symbol, (* the name of the member *)
- uid : Pid.uid, (* unique identifier *)
---- 179,183 ----
- | ENUMmem of LargeInt.int
-
-! type member =
- {name: Symbol.symbol, (* the name of the member *)
- uid : Pid.uid, (* unique identifier *)
-diff -N -C 2 -r ckit/src/ast/build-ast.sml ckit-mlton/src/ast/build-ast.sml
-*** ckit/src/ast/build-ast.sml 2010-02-03 11:40:52.000000000 -0500
---- ckit-mlton/src/ast/build-ast.sml 2009-03-27 18:28:04.000000000 -0400
-***************
-*** 291,295 ****
- | _ => false
-
-! fun isPartialTy(Ast.StructRef tid | Ast.UnionRef tid) = isPartial tid
- | isPartialTy _ = false
-
---- 291,296 ----
- | _ => false
-
-! fun isPartialTy(Ast.StructRef tid) = isPartial tid
-! | isPartialTy(Ast.UnionRef tid) = isPartial tid
- | isPartialTy _ = false
-
-***************
-*** 444,448 ****
- of Ast.Member(Ast.EXPR (expr'', aid, _), _) =>
- isLval (expr'', lookAid aid)
-! | (Ast.Id _ | Ast.Sub _ | Ast.Arrow _ | Ast.Deref _) => true
- | _ => false
-
---- 445,452 ----
- of Ast.Member(Ast.EXPR (expr'', aid, _), _) =>
- isLval (expr'', lookAid aid)
-! | Ast.Id _ => true
-! | Ast.Sub _ => true
-! | Ast.Arrow _ => true
-! | Ast.Deref _ => true
- | _ => false
-
-***************
-*** 603,607 ****
-
-
-! fun TCInitializer(ctype as (Ast.TypeRef _ | Ast.Qual _), expr) =
- TCInitializer(getCoreType ctype, expr) (* the following TCInitializer cases expect coretypes *)
- | TCInitializer (Ast.Array(opt, ctype), Ast.Aggregate exprs) =
---- 607,613 ----
-
-
-! fun TCInitializer(ctype as Ast.TypeRef _, expr) =
-! TCInitializer(getCoreType ctype, expr) (* the following TCInitializer cases expect coretypes *)
-! | TCInitializer(ctype as Ast.Qual _, expr) =
- TCInitializer(getCoreType ctype, expr) (* the following TCInitializer cases expect coretypes *)
- | TCInitializer (Ast.Array(opt, ctype), Ast.Aggregate exprs) =
-***************
-*** 651,655 ****
- | NONE => bug "TCInitializer: lookTid failed"
- | _ => error "TCInitializer: ill-formed UnionRef type")
-! | TCInitializer (ty as (Ast.StructRef _ | Ast.UnionRef _), Ast.Simple(Ast.EXPR(coreExp, aid, _))) =
- if isAssignableTys {lhsTy=ty, rhsTy=lookAid aid, rhsExprOpt=SOME coreExp}
- then ()
---- 657,665 ----
- | NONE => bug "TCInitializer: lookTid failed"
- | _ => error "TCInitializer: ill-formed UnionRef type")
-! | TCInitializer (ty as Ast.StructRef _, Ast.Simple(Ast.EXPR(coreExp, aid, _))) =
-! if isAssignableTys {lhsTy=ty, rhsTy=lookAid aid, rhsExprOpt=SOME coreExp}
-! then ()
-! else error "type of initializer is incompatible with type of lval"
-! | TCInitializer (ty as Ast.UnionRef _, Ast.Simple(Ast.EXPR(coreExp, aid, _))) =
- if isAssignableTys {lhsTy=ty, rhsTy=lookAid aid, rhsExprOpt=SOME coreExp}
- then ()
-***************
-*** 805,809 ****
- *)
- (* Note: should really reduce constants arith exprs to simple constants *)
-! fun constCheck(Ast.EXPR((Ast.StringConst _ | Ast.IntConst _ | Ast.RealConst _),_,_)) = true
- | constCheck(Ast.EXPR(Ast.QuestionColon(e1, e2, e3), _, _))
- = constCheck e1 andalso constCheck e2 andalso constCheck e3
---- 815,821 ----
- *)
- (* Note: should really reduce constants arith exprs to simple constants *)
-! fun constCheck(Ast.EXPR(Ast.StringConst _,_,_)) = true
-! | constCheck(Ast.EXPR(Ast.IntConst _,_,_)) = true
-! | constCheck(Ast.EXPR(Ast.RealConst _,_,_)) = true
- | constCheck(Ast.EXPR(Ast.QuestionColon(e1, e2, e3), _, _))
- = constCheck e1 andalso constCheck e2 andalso constCheck e3
-***************
-*** 2372,2376 ****
- of PT.Signed =>
- (case !kind
-! of SOME (Ast.FLOAT | Ast.DOUBLE | Ast.LONGDOUBLE) =>
- error "illegal combination of signed with float/double/long double"
- | _ => ();
---- 2384,2392 ----
- of PT.Signed =>
- (case !kind
-! of SOME Ast.FLOAT =>
-! error "illegal combination of signed with float/double/long double"
-! | SOME Ast.DOUBLE =>
-! error "illegal combination of signed with float/double/long double"
-! | SOME Ast.LONGDOUBLE =>
- error "illegal combination of signed with float/double/long double"
- | _ => ();
-***************
-*** 2380,2384 ****
- | PT.Unsigned =>
- (case !kind
-! of SOME (Ast.FLOAT | Ast.DOUBLE | Ast.LONGDOUBLE) =>
- error "illegal combination of unsigned with float/double/long double"
- | _ => ();
---- 2396,2404 ----
- | PT.Unsigned =>
- (case !kind
-! of SOME Ast.FLOAT =>
-! error "illegal combination of unsigned with float/double/long double"
-! | SOME Ast.DOUBLE =>
-! error "illegal combination of unsigned with float/double/long double"
-! | SOME Ast.LONGDOUBLE =>
- error "illegal combination of unsigned with float/double/long double"
- | _ => ();
-***************
-*** 2395,2399 ****
- | PT.Short =>
- (case !kind
-! of (NONE | SOME Ast.INT) => (kind := SOME Ast.SHORT)
- | SOME ct =>
- error (case ct
---- 2415,2420 ----
- | PT.Short =>
- (case !kind
-! of NONE => (kind := SOME Ast.SHORT)
-! | SOME Ast.INT => (kind := SOME Ast.SHORT)
- | SOME ct =>
- error (case ct
-***************
-*** 2403,2407 ****
- (case !kind
- of NONE => (kind := SOME Ast.INT)
-! | SOME (Ast.SHORT | Ast.LONG | Ast.LONGLONG) => ()
- | SOME ct =>
- error (case ct
---- 2424,2430 ----
- (case !kind
- of NONE => (kind := SOME Ast.INT)
-! | SOME Ast.SHORT => ()
-! | SOME Ast.LONG => ()
-! | SOME Ast.LONGLONG => ()
- | SOME ct =>
- error (case ct
-***************
-*** 2688,2692 ****
- of SOME(TAG{ctype=ty,location=loc',...}) =>
- (case ty
-! of (Ast.UnionRef tid | Ast.StructRef tid) =>
- if isPartial tid
- then SOME{tid=tid, alreadyDefined=false}
---- 2711,2725 ----
- of SOME(TAG{ctype=ty,location=loc',...}) =>
- (case ty
-! of Ast.UnionRef tid =>
-! if isPartial tid
-! then SOME{tid=tid, alreadyDefined=false}
-! else if repeated_declarations_ok
-! then SOME{tid=tid, alreadyDefined=true}
-! else (error("Redeclaration of type tag `"
-! ^ tagname
-! ^ "'; previous declaration at "
-! ^ SM.locToString loc');
-! NONE)
-! | Ast.StructRef tid =>
- if isPartial tid
- then SOME{tid=tid, alreadyDefined=false}
-diff -N -C 2 -r ckit/src/ast/initializer-normalizer.sml ckit-mlton/src/ast/initializer-normalizer.sml
-*** ckit/src/ast/initializer-normalizer.sml 2010-02-03 11:40:52.000000000 -0500
---- ckit-mlton/src/ast/initializer-normalizer.sml 2009-03-27 18:28:04.000000000 -0400
-***************
-*** 157,161 ****
- | SOME _ => fail "Incomplete type for union ref"
- | NONE => fail "Inconsistent table for union ref")
-! | (Ast.Numeric _ | Ast.Pointer _ | Ast.Function _ | Ast.EnumRef _) =>
- feed (scalarNorm ctype, inits)
- | Ast.Void => fail "Incomplete type: void"
---- 157,167 ----
- | SOME _ => fail "Incomplete type for union ref"
- | NONE => fail "Inconsistent table for union ref")
-! | Ast.Numeric _ =>
-! feed (scalarNorm ctype, inits)
-! | Ast.Pointer _ =>
-! feed (scalarNorm ctype, inits)
-! | Ast.Function _ =>
-! feed (scalarNorm ctype, inits)
-! | Ast.EnumRef _ =>
- feed (scalarNorm ctype, inits)
- | Ast.Void => fail "Incomplete type: void"
-diff -N -C 2 -r 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 2010-02-03 11:40:52.000000000 -0500
---- ckit-mlton/src/ast/pp/pp-ast-adornment-sig.sml 2009-03-27 18:29:56.000000000 -0400
-***************
-*** 1,9 ****
- (* Copyright (c) 1998 by Lucent Technologies *)
-
-! local
- type 'a pp = Tables.tidtab -> OldPrettyPrint.ppstream -> 'a -> unit
-
- type ('aidinfo,'a,'b) adornment_pp = ('aidinfo -> 'a) -> 'aidinfo -> 'b
-! in
- signature PPASTADORNMENT = sig
- type aidinfo
---- 1,9 ----
- (* Copyright (c) 1998 by Lucent Technologies *)
-
-! (* local *)
- type 'a pp = Tables.tidtab -> OldPrettyPrint.ppstream -> 'a -> unit
-
- type ('aidinfo,'a,'b) adornment_pp = ('aidinfo -> 'a) -> 'aidinfo -> 'b
-! (* in *)
- signature PPASTADORNMENT = sig
- type aidinfo
-***************
-*** 12,14 ****
- val ppExternalDeclAdornment: (aidinfo,Ast.coreExternalDecl pp,Ast.externalDecl pp) adornment_pp
- end
-! end
---- 12,14 ----
- val ppExternalDeclAdornment: (aidinfo,Ast.coreExternalDecl pp,Ast.externalDecl pp) adornment_pp
- end
-! (* end *)
-diff -N -C 2 -r 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 2010-02-03 11:40:52.000000000 -0500
---- ckit-mlton/src/ast/pp/pp-ast-ext-sig.sml 2009-03-27 18:29:56.000000000 -0400
-***************
-*** 1,5 ****
- (* Copyright (c) 1998 by Lucent Technologies *)
-
-! local
- type 'a pp = Tables.tidtab -> OldPrettyPrint.ppstream -> 'a -> unit
- type ('a, 'aidinfo) ppExt =
---- 1,5 ----
- (* Copyright (c) 1998 by Lucent Technologies *)
-
-! (* local *)
- type 'a pp = Tables.tidtab -> OldPrettyPrint.ppstream -> 'a -> unit
- type ('a, 'aidinfo) ppExt =
-***************
-*** 8,12 ****
- -> 'aidinfo
- -> Tables.tidtab -> OldPrettyPrint.ppstream -> 'a -> unit
-! in
-
- signature PPASTEXT = sig
---- 8,12 ----
- -> 'aidinfo
- -> Tables.tidtab -> OldPrettyPrint.ppstream -> 'a -> unit
-! (* in *)
-
- signature PPASTEXT = sig
-***************
-*** 25,27 ****
- end
-
-! end
---- 25,27 ----
- end
-
-! (* end *)
-diff -N -C 2 -r ckit/src/ast/pp/pp-lib.sml ckit-mlton/src/ast/pp/pp-lib.sml
-*** ckit/src/ast/pp/pp-lib.sml 2010-02-03 11:40:52.000000000 -0500
---- ckit-mlton/src/ast/pp/pp-lib.sml 2009-03-27 18:29:56.000000000 -0400
-***************
-*** 116,120 ****
- fun ppId pps ({name,uid,kind,stClass,global,...}: Ast.id) =
- case (stClass,global)
-! of ((Ast.EXTERN,_) | (_, true)) => (* globals *)
- if !suppressPidGlobalUnderscores then ppSymbol' pps name
- else ppSymbol pps (name,uid)
---- 116,123 ----
- fun ppId pps ({name,uid,kind,stClass,global,...}: Ast.id) =
- case (stClass,global)
-! of (Ast.EXTERN,_) => (* globals *)
-! if !suppressPidGlobalUnderscores then ppSymbol' pps name
-! else ppSymbol pps (name,uid)
-! | (_, true) => (* globals *)
- if !suppressPidGlobalUnderscores then ppSymbol' pps name
- else ppSymbol pps (name,uid)
-diff -N -C 2 -r ckit/src/ast/sizeof.sml ckit-mlton/src/ast/sizeof.sml
-*** ckit/src/ast/sizeof.sml 2010-02-03 11:40:52.000000000 -0500
---- ckit-mlton/src/ast/sizeof.sml 2009-03-27 18:28:04.000000000 -0400
-***************
-*** 322,326 ****
- case ty
- of Ast.TypeRef tid => processTid sizesErrWarnBug tidtab tid
-! | (Ast.StructRef tid | Ast.UnionRef tid) =>
- processTid sizesErrWarnBug tidtab tid
- | Ast.EnumRef _ =>
---- 322,328 ----
- case ty
- of Ast.TypeRef tid => processTid sizesErrWarnBug tidtab tid
-! | Ast.StructRef tid =>
-! processTid sizesErrWarnBug tidtab tid
-! | Ast.UnionRef tid =>
- processTid sizesErrWarnBug tidtab tid
- | Ast.EnumRef _ =>
-diff -N -C 2 -r ckit/src/ast/type-util-sig.sml ckit-mlton/src/ast/type-util-sig.sml
-*** ckit/src/ast/type-util-sig.sml 2010-02-03 11:40:52.000000000 -0500
---- ckit-mlton/src/ast/type-util-sig.sml 2009-03-27 18:28:04.000000000 -0400
-***************
-*** 1,9 ****
- (* Copyright (c) 1998 by Lucent Technologies *)
-
-! local
- type 'a type_util = Tables.tidtab -> Ast.ctype -> 'a
- type 'a type_mem_util = Tables.tidtab -> Ast.ctype * Ast.member -> 'a
- type 'a type_type_util = Tables.tidtab -> Ast.ctype * Ast.ctype -> 'a
-! in
-
- signature TYPE_UTIL =
---- 1,9 ----
- (* Copyright (c) 1998 by Lucent Technologies *)
-
-! (* local *)
- type 'a type_util = Tables.tidtab -> Ast.ctype -> 'a
- type 'a type_mem_util = Tables.tidtab -> Ast.ctype * Ast.member -> 'a
- type 'a type_type_util = Tables.tidtab -> Ast.ctype * Ast.ctype -> 'a
-! (* in *)
-
- signature TYPE_UTIL =
-***************
-*** 146,148 ****
- end (* signature TYPE_UTIL *)
-
-! end (* local *)
---- 146,148 ----
- end (* signature TYPE_UTIL *)
-
-! (* end (* local *) *)
-diff -N -C 2 -r ckit/src/ast/type-util.sml ckit-mlton/src/ast/type-util.sml
-*** ckit/src/ast/type-util.sml 2010-02-03 11:40:52.000000000 -0500
---- ckit-mlton/src/ast/type-util.sml 2009-03-27 18:28:04.000000000 -0400
-***************
-*** 283,287 ****
- case reduceTypedef tidtab ty
- of Ast.Qual (_,ty) => isStructOrUnion tidtab ty
-! | (Ast.StructRef tid | Ast.UnionRef tid) => SOME tid
- | _ => NONE
-
---- 283,288 ----
- case reduceTypedef tidtab ty
- of Ast.Qual (_,ty) => isStructOrUnion tidtab ty
-! | Ast.StructRef tid => SOME tid
-! | Ast.UnionRef tid => SOME tid
- | _ => NONE
-
-***************
-*** 554,558 ****
- (SOME ct, eml) => (SOME(Pointer ct), eml)
- | (NONE, eml) => (NONE, eml))
-! | ((StructRef tid1, StructRef tid2) | (UnionRef tid1, UnionRef tid2)) =>
- if Tid.equal (tid1, tid2) then (SOME ty1, nil) else (NONE, nil)
- | _ => (NONE, nil)
---- 555,561 ----
- (SOME ct, eml) => (SOME(Pointer ct), eml)
- | (NONE, eml) => (NONE, eml))
-! | (StructRef tid1, StructRef tid2) =>
-! if Tid.equal (tid1, tid2) then (SOME ty1, nil) else (NONE, nil)
-! | (UnionRef tid1, UnionRef tid2) =>
- if Tid.equal (tid1, tid2) then (SOME ty1, nil) else (NONE, nil)
- | _ => (NONE, nil)
-***************
-*** 652,657 ****
- (case (usualUnaryCnv tidtab ty1, exp1Zero, usualUnaryCnv tidtab ty2, exp2Zero) of
- (Ast.Numeric _, _, Ast.Numeric _, _) => usualBinaryCnv tidtab (ty1, ty2) (* get common type *)
-! | ((Ast.StructRef tid1, _, Ast.StructRef tid2, _) |
-! (Ast.UnionRef tid1, _, Ast.UnionRef tid2, _)) =>
- if Tid.equal (tid1, tid2) then SOME ty1
- else NONE
---- 655,662 ----
- (case (usualUnaryCnv tidtab ty1, exp1Zero, usualUnaryCnv tidtab ty2, exp2Zero) of
- (Ast.Numeric _, _, Ast.Numeric _, _) => usualBinaryCnv tidtab (ty1, ty2) (* get common type *)
-! | (Ast.StructRef tid1, _, Ast.StructRef tid2, _) =>
-! if Tid.equal (tid1, tid2) then SOME ty1
-! else NONE
-! | (Ast.UnionRef tid1, _, Ast.UnionRef tid2, _) =>
- if Tid.equal (tid1, tid2) then SOME ty1
- else NONE
-***************
-*** 746,752 ****
- * is a function of no args *)
- *)
-! | ((_, nil, _) | (_, _, nil)) => ( ["Type Warning: function call has too few args"]
-! , nil
-! )
- | (nil, argl, _) => (["Type Warning: function call has too many args"]
- , List.map (functionArgConv tidtab) argl
---- 751,760 ----
- * is a function of no args *)
- *)
-! | (_, nil, _) => (["Type Warning: function call has too few args"]
-! , nil
-! )
-! | (_, _, nil) => (["Type Warning: function call has too few args"]
-! , nil
-! )
- | (nil, argl, _) => (["Type Warning: function call has too many args"]
- , List.map (functionArgConv tidtab) argl
-diff -N -C 2 -r 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 2010-04-02 16:08:40.000000000 -0400
-***************
-*** 0 ****
---- 1,888 ----
-+
-+ ann
-+ "nonexhaustiveMatch warn" "redundantMatch warn"
-+ "sequenceNonUnit ignore"
-+ "warnUnused false" "forceUsed"
-+ in
-+
-+ local
-+ basis l4 =
-+ bas
-+ (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb
-+ end
-+ basis l24 =
-+ bas
-+ (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb
-+ end
-+ basis l71 =
-+ bas
-+ (* $/pp-lib.cm ====> *) $(SML_LIB)/smlnj-lib/PP/pp-lib.mlb
-+ end
-+ basis l96 =
-+ bas
-+ (* $/ml-yacc-lib.cm ====> *) $(SML_LIB)/mlyacc-lib/mlyacc-lib.mlb
-+ end
-+ in
-+ local
-+ $(SML_LIB)/basis/pervasive.mlb
-+ local
-+ open l4
-+ in
-+ structure gs_0 = TextIO
+diff --git a/README.mlton b/README.mlton
+new file mode 100644
+index 0000000..1a82db7
+--- /dev/null
++++ b/README.mlton
+@@ -0,0 +1,14 @@
++The following changes were made to the ckit Library, in addition to
++deriving the {{{.mlb}}} file from the {{{.cm}}} files:
++ * {{{ast/ast-sig.sml}}} (modified): Rewrote use of {{{withtype}}} in signature.
++ * {{{ast/build-ast.sml}}} (modified): Rewrote use of ''or-patterns''.
++ * {{{ast/initializer-normalizer.sml}}} (modified): Rewrote use of ''or-patterns''.
++ * {{{ast/pp/pp-ast-adornment-sig.sml}}} (modified): Rewrote use of {{{signature}}} in {{{local}}}.
++ * {{{ast/pp/pp-ast-ext-sig.sml}}} (modified): Rewrote use of {{{signature}}} in {{{local}}}.
++ * {{{ast/pp/pp-lib.sml}}} (modified): Rewrote use of ''or-patterns''.
++ * {{{ast/sizeof.sml}}} (modified): Rewrote use of ''or-patterns''.
++ * {{{ast/type-util-sig.sml}}} (modified): Rewrote use of {{{signature}}} in {{{local}}}.
++ * {{{ast/type-util.sml}}} (modified): Rewrote use of ''or-patterns''.
++ * {{{parser/grammar/c.lex.sml}}} (modified): Rewrote use of vector literal.
++ * {{{parser/parse-tree-sig.sml}}} (modified): Rewrote use of (sequential) {{{withtype}}} in signature.
++ * {{{parser/parse-tree.sml}}} (modified): Rewrote use of (sequential) {{{withtype}}}.
+diff --git a/ckit-lib.mlb b/ckit-lib.mlb
+new file mode 100644
+index 0000000..abc601f
+--- /dev/null
++++ b/ckit-lib.mlb
+@@ -0,0 +1 @@
++src/ckit-lib.mlb
+diff --git a/src/ast/ast-sig.sml b/src/ast/ast-sig.sml
+index 29f5eb2..367fb5a 100644
+--- a/src/ast/ast-sig.sml
++++ b/src/ast/ast-sig.sml
+@@ -67,7 +67,12 @@ sig
+ datatype declaration
+ = TypeDecl of {shadow: {strct:bool} option, tid:tid}
+ (* placeholder to indicate where typedefs/enums/structs should be printed *)
+- | VarDecl of id * initExpression option
++ | VarDecl of
++ (* id *) {name: Symbol.symbol, uid: Pid.uid,
++ location: SourceMap.location, ctype: ctype,
++ stClass: storageClass, status: declStatus,
++ global: bool, kind: idKind} *
++ initExpression option
+
+
+ (* STATEMENTS *)
+@@ -106,15 +111,31 @@ sig
+ | Assign of expression * expression
+ | Comma of expression * expression
+ | Sub of expression * expression
+- | Member of expression * member
+- | Arrow of expression * member
++ | Member of
++ expression *
++ (* member *) {name: Symbol.symbol, uid : Pid.uid,
++ location : SourceMap.location,
++ ctype: ctype, kind: memberKind}
++ | Arrow of
++ expression *
++ (* member *) {name: Symbol.symbol, uid : Pid.uid,
++ location : SourceMap.location,
++ ctype: ctype, kind: memberKind}
+ | Deref of expression
+ | AddrOf of expression
+ | Binop of binop * expression * expression
+ | Unop of unop * expression
+ | Cast of ctype * expression
+- | Id of id
+- | EnumId of member * LargeInt.int
++ | Id of
++ (* id *) {name: Symbol.symbol, uid: Pid.uid,
++ location: SourceMap.location, ctype: ctype,
++ stClass: storageClass, status: declStatus,
++ global: bool, kind: idKind}
++ | EnumId of
++ (* member *) {name: Symbol.symbol, uid : Pid.uid,
++ location : SourceMap.location,
++ ctype: ctype, kind: memberKind} *
++ LargeInt.int
+ | SizeOf of ctype (* not used in compiler mode; sizeof expr becomes sizeof (typeof expr) *)
+ | ExprExt of (expression, statement, binop, unop) AstExt.expressionExt
+ | ErrorExpr
+@@ -131,7 +152,13 @@ sig
+ * signednessTag
+ | Array of (LargeInt.int * expression) option * ctype
+ | Pointer of ctype
+- | Function of ctype * (ctype * id option) list
++ | Function of
++ ctype *
++ (ctype *
++ (* id *) {name: Symbol.symbol, uid: Pid.uid,
++ location: SourceMap.location, ctype: ctype,
++ stClass: storageClass, status: declStatus,
++ global: bool, kind: idKind} option) list
+ | StructRef of tid (* reference to a tid bound by a struct decl *)
+ | UnionRef of tid (* reference to a tid bound by a union decl *)
+ | EnumRef of tid (* reference to a tid bound by a enumeration decl *)
+@@ -151,7 +178,7 @@ sig
+ | UNIONmem
+ | ENUMmem of LargeInt.int
+
+- withtype member =
++ type member =
+ {name: Symbol.symbol, (* the name of the member *)
+ uid : Pid.uid, (* unique identifier *)
+ location : SourceMap.location,
+diff --git a/src/ast/build-ast.sml b/src/ast/build-ast.sml
+index 9e8e7c7..65e32bf 100644
+--- a/src/ast/build-ast.sml
++++ b/src/ast/build-ast.sml
+@@ -290,7 +290,8 @@ let
+ of SOME{ntype=NONE,...} => true
+ | _ => false
+
+- fun isPartialTy(Ast.StructRef tid | Ast.UnionRef tid) = isPartial tid
++ fun isPartialTy(Ast.StructRef tid) = isPartial tid
++ | isPartialTy(Ast.UnionRef tid) = isPartial tid
+ | isPartialTy _ = false
+
+
+@@ -443,7 +444,10 @@ let
+ case expr
+ of Ast.Member(Ast.EXPR (expr'', aid, _), _) =>
+ isLval (expr'', lookAid aid)
+- | (Ast.Id _ | Ast.Sub _ | Ast.Arrow _ | Ast.Deref _) => true
++ | Ast.Id _ => true
++ | Ast.Sub _ => true
++ | Ast.Arrow _ => true
++ | Ast.Deref _ => true
+ | _ => false
+
+ fun checkAssignableLval (expr, ty, s) =
+@@ -602,7 +606,9 @@ let
+ NB 2: if type is array then *do* generate errors when initializer is simple *)
+
+
+- fun TCInitializer(ctype as (Ast.TypeRef _ | Ast.Qual _), expr) =
++ fun TCInitializer(ctype as Ast.TypeRef _, expr) =
++ TCInitializer(getCoreType ctype, expr) (* the following TCInitializer cases expect coretypes *)
++ | TCInitializer(ctype as Ast.Qual _, expr) =
+ TCInitializer(getCoreType ctype, expr) (* the following TCInitializer cases expect coretypes *)
+ | TCInitializer (Ast.Array(opt, ctype), Ast.Aggregate exprs) =
+ (case (opt, LargeInt.fromInt(List.length exprs))
+@@ -650,7 +656,11 @@ let
+ error "empty union"
+ | NONE => bug "TCInitializer: lookTid failed"
+ | _ => error "TCInitializer: ill-formed UnionRef type")
+- | TCInitializer (ty as (Ast.StructRef _ | Ast.UnionRef _), Ast.Simple(Ast.EXPR(coreExp, aid, _))) =
++ | TCInitializer (ty as Ast.StructRef _, Ast.Simple(Ast.EXPR(coreExp, aid, _))) =
++ if isAssignableTys {lhsTy=ty, rhsTy=lookAid aid, rhsExprOpt=SOME coreExp}
++ then ()
++ else error "type of initializer is incompatible with type of lval"
++ | TCInitializer (ty as Ast.UnionRef _, Ast.Simple(Ast.EXPR(coreExp, aid, _))) =
+ if isAssignableTys {lhsTy=ty, rhsTy=lookAid aid, rhsExprOpt=SOME coreExp}
+ then ()
+ else error "type of initializer is incompatible with type of lval"
+@@ -804,7 +814,9 @@ let
+ b) the object has static storage duration
+ *)
+ (* Note: should really reduce constants arith exprs to simple constants *)
+- fun constCheck(Ast.EXPR((Ast.StringConst _ | Ast.IntConst _ | Ast.RealConst _),_,_)) = true
++ fun constCheck(Ast.EXPR(Ast.StringConst _,_,_)) = true
++ | constCheck(Ast.EXPR(Ast.IntConst _,_,_)) = true
++ | constCheck(Ast.EXPR(Ast.RealConst _,_,_)) = true
+ | constCheck(Ast.EXPR(Ast.QuestionColon(e1, e2, e3), _, _))
+ = constCheck e1 andalso constCheck e2 andalso constCheck e3
+ | constCheck(Ast.EXPR(Ast.Binop(_, e1, e2), _, _))
+@@ -2371,7 +2383,11 @@ end old code ******)
+ (case spec
+ of PT.Signed =>
+ (case !kind
+- of SOME (Ast.FLOAT | Ast.DOUBLE | Ast.LONGDOUBLE) =>
++ of SOME Ast.FLOAT =>
++ error "illegal combination of signed with float/double/long double"
++ | SOME Ast.DOUBLE =>
++ error "illegal combination of signed with float/double/long double"
++ | SOME Ast.LONGDOUBLE =>
+ error "illegal combination of signed with float/double/long double"
+ | _ => ();
+ case !signed
+@@ -2379,7 +2395,11 @@ end old code ******)
+ | SOME _ => error "Multiple signed/unsigned")
+ | PT.Unsigned =>
+ (case !kind
+- of SOME (Ast.FLOAT | Ast.DOUBLE | Ast.LONGDOUBLE) =>
++ of SOME Ast.FLOAT =>
++ error "illegal combination of unsigned with float/double/long double"
++ | SOME Ast.DOUBLE =>
++ error "illegal combination of unsigned with float/double/long double"
++ | SOME Ast.LONGDOUBLE =>
+ error "illegal combination of unsigned with float/double/long double"
+ | _ => ();
+ case !signed
+@@ -2394,7 +2414,8 @@ end old code ******)
+ | _ => "illegal use of char specifier"))
+ | PT.Short =>
+ (case !kind
+- of (NONE | SOME Ast.INT) => (kind := SOME Ast.SHORT)
++ of NONE => (kind := SOME Ast.SHORT)
++ | SOME Ast.INT => (kind := SOME Ast.SHORT)
+ | SOME ct =>
+ error (case ct
+ of Ast.SHORT => "duplicate short specifier"
+@@ -2402,7 +2423,9 @@ end old code ******)
+ | PT.Int =>
+ (case !kind
+ of NONE => (kind := SOME Ast.INT)
+- | SOME (Ast.SHORT | Ast.LONG | Ast.LONGLONG) => ()
++ | SOME Ast.SHORT => ()
++ | SOME Ast.LONG => ()
++ | SOME Ast.LONGLONG => ()
+ | SOME ct =>
+ error (case ct
+ of Ast.INT => "duplicate int specifier"
+@@ -2687,7 +2710,17 @@ end old code ******)
+ (case lookLocalScope sym
+ of SOME(TAG{ctype=ty,location=loc',...}) =>
+ (case ty
+- of (Ast.UnionRef tid | Ast.StructRef tid) =>
++ of Ast.UnionRef tid =>
++ if isPartial tid
++ then SOME{tid=tid, alreadyDefined=false}
++ else if repeated_declarations_ok
++ then SOME{tid=tid, alreadyDefined=true}
++ else (error("Redeclaration of type tag `"
++ ^ tagname
++ ^ "'; previous declaration at "
++ ^ SM.locToString loc');
++ NONE)
++ | Ast.StructRef tid =>
+ if isPartial tid
+ then SOME{tid=tid, alreadyDefined=false}
+ else if repeated_declarations_ok
+diff --git a/src/ast/initializer-normalizer.sml b/src/ast/initializer-normalizer.sml
+index 5ea8dbc..2e7a563 100644
+--- a/src/ast/initializer-normalizer.sml
++++ b/src/ast/initializer-normalizer.sml
+@@ -156,7 +156,13 @@ let
+ feed (unionNorm (ctype, fields), inits)
+ | SOME _ => fail "Incomplete type for union ref"
+ | NONE => fail "Inconsistent table for union ref")
+- | (Ast.Numeric _ | Ast.Pointer _ | Ast.Function _ | Ast.EnumRef _) =>
++ | Ast.Numeric _ =>
++ feed (scalarNorm ctype, inits)
++ | Ast.Pointer _ =>
++ feed (scalarNorm ctype, inits)
++ | Ast.Function _ =>
++ feed (scalarNorm ctype, inits)
++ | Ast.EnumRef _ =>
+ feed (scalarNorm ctype, inits)
+ | Ast.Void => fail "Incomplete type: void"
+ | Ast.Ellipses => fail "Cannot initialize ellipses"
+diff --git a/src/ast/pp/pp-ast-adornment-sig.sml b/src/ast/pp/pp-ast-adornment-sig.sml
+index a7b937b..ab6e0a9 100644
+--- a/src/ast/pp/pp-ast-adornment-sig.sml
++++ b/src/ast/pp/pp-ast-adornment-sig.sml
+@@ -1,14 +1,14 @@
+ (* Copyright (c) 1998 by Lucent Technologies *)
+
+-local
++(* local *)
+ type 'a pp = Tables.tidtab -> OldPrettyPrint.ppstream -> 'a -> unit
+
+ type ('aidinfo,'a,'b) adornment_pp = ('aidinfo -> 'a) -> 'aidinfo -> 'b
+-in
++(* in *)
+ signature PPASTADORNMENT = sig
+ type aidinfo
+ val ppExpressionAdornment: (aidinfo,Ast.coreExpression pp,Ast.expression pp) adornment_pp
+ val ppStatementAdornment : (aidinfo,Ast.coreStatement pp,Ast.statement pp) adornment_pp
+ val ppExternalDeclAdornment: (aidinfo,Ast.coreExternalDecl pp,Ast.externalDecl pp) adornment_pp
+ end
+-end
++(* end *)
+diff --git a/src/ast/pp/pp-ast-ext-sig.sml b/src/ast/pp/pp-ast-ext-sig.sml
+index 4169fc7..c7291ab 100644
+--- a/src/ast/pp/pp-ast-ext-sig.sml
++++ b/src/ast/pp/pp-ast-ext-sig.sml
+@@ -1,13 +1,13 @@
+ (* Copyright (c) 1998 by Lucent Technologies *)
+
+-local
++(* local *)
+ type 'a pp = Tables.tidtab -> OldPrettyPrint.ppstream -> 'a -> unit
+ type ('a, 'aidinfo) ppExt =
+ (('aidinfo -> Ast.expression pp) * ('aidinfo -> Ast.statement pp) *
+ ('aidinfo -> Ast.binop pp) * ('aidinfo -> Ast.unop pp))
+ -> 'aidinfo
+ -> Tables.tidtab -> OldPrettyPrint.ppstream -> 'a -> unit
+-in
++(* in *)
+
+ signature PPASTEXT = sig
+ type aidinfo
+@@ -24,4 +24,4 @@ signature PPASTEXT = sig
+ aidinfo) ppExt
+ end
+
+-end
++(* end *)
+diff --git a/src/ast/pp/pp-lib.sml b/src/ast/pp/pp-lib.sml
+index f6386d3..70f8504 100644
+--- a/src/ast/pp/pp-lib.sml
++++ b/src/ast/pp/pp-lib.sml
+@@ -115,7 +115,10 @@ structure PPLib = struct
+
+ fun ppId pps ({name,uid,kind,stClass,global,...}: Ast.id) =
+ case (stClass,global)
+- of ((Ast.EXTERN,_) | (_, true)) => (* globals *)
++ of (Ast.EXTERN,_) => (* globals *)
++ if !suppressPidGlobalUnderscores then ppSymbol' pps name
++ else ppSymbol pps (name,uid)
++ | (_, true) => (* globals *)
+ if !suppressPidGlobalUnderscores then ppSymbol' pps name
+ else ppSymbol pps (name,uid)
+ | _ => ppSymbol pps (name,uid)
+diff --git a/src/ast/sizeof.sml b/src/ast/sizeof.sml
+index 02705c2..aebd826 100644
+--- a/src/ast/sizeof.sml
++++ b/src/ast/sizeof.sml
+@@ -321,7 +321,9 @@ struct
+ and process (sizesErrWarnBug as {sizes, err, warn, bug}) tidtab ty =
+ case ty
+ of Ast.TypeRef tid => processTid sizesErrWarnBug tidtab tid
+- | (Ast.StructRef tid | Ast.UnionRef tid) =>
++ | Ast.StructRef tid =>
++ processTid sizesErrWarnBug tidtab tid
++ | Ast.UnionRef tid =>
+ processTid sizesErrWarnBug tidtab tid
+ | Ast.EnumRef _ =>
+ let val {bits,align} = #int sizes
+diff --git a/src/ast/type-util-sig.sml b/src/ast/type-util-sig.sml
+index b03260b..a262146 100644
+--- a/src/ast/type-util-sig.sml
++++ b/src/ast/type-util-sig.sml
+@@ -1,10 +1,10 @@
+ (* Copyright (c) 1998 by Lucent Technologies *)
+
+-local
++(* local *)
+ type 'a type_util = Tables.tidtab -> Ast.ctype -> 'a
+ type 'a type_mem_util = Tables.tidtab -> Ast.ctype * Ast.member -> 'a
+ type 'a type_type_util = Tables.tidtab -> Ast.ctype * Ast.ctype -> 'a
+-in
++(* in *)
+
+ signature TYPE_UTIL =
+ sig
+@@ -145,4 +145,4 @@ sig
+
+ end (* signature TYPE_UTIL *)
+
+-end (* local *)
++(* end (* local *) *)
+diff --git a/src/ast/type-util.sml b/src/ast/type-util.sml
+index 8dc30d3..851cfe8 100644
+--- a/src/ast/type-util.sml
++++ b/src/ast/type-util.sml
+@@ -282,7 +282,8 @@ struct
+ fun isStructOrUnion tidtab ty =
+ case reduceTypedef tidtab ty
+ of Ast.Qual (_,ty) => isStructOrUnion tidtab ty
+- | (Ast.StructRef tid | Ast.UnionRef tid) => SOME tid
++ | Ast.StructRef tid => SOME tid
++ | Ast.UnionRef tid => SOME tid
+ | _ => NONE
+
+ fun isEnum tidtab (ty,member as {uid,kind=Ast.ENUMmem _,...}: Ast.member) =
+@@ -553,7 +554,9 @@ struct
+ | (Pointer ct1, Pointer ct2) => (case compose (ct1, ct2) of
+ (SOME ct, eml) => (SOME(Pointer ct), eml)
+ | (NONE, eml) => (NONE, eml))
+- | ((StructRef tid1, StructRef tid2) | (UnionRef tid1, UnionRef tid2)) =>
++ | (StructRef tid1, StructRef tid2) =>
++ if Tid.equal (tid1, tid2) then (SOME ty1, nil) else (NONE, nil)
++ | (UnionRef tid1, UnionRef tid2) =>
+ if Tid.equal (tid1, tid2) then (SOME ty1, nil) else (NONE, nil)
+ | _ => (NONE, nil)
+ end
+@@ -651,8 +654,10 @@ struct
+ fun conditionalExp tidtab {ty1, exp1Zero, ty2, exp2Zero} = (* for Eq and Neq *)
+ (case (usualUnaryCnv tidtab ty1, exp1Zero, usualUnaryCnv tidtab ty2, exp2Zero) of
+ (Ast.Numeric _, _, Ast.Numeric _, _) => usualBinaryCnv tidtab (ty1, ty2) (* get common type *)
+- | ((Ast.StructRef tid1, _, Ast.StructRef tid2, _) |
+- (Ast.UnionRef tid1, _, Ast.UnionRef tid2, _)) =>
++ | (Ast.StructRef tid1, _, Ast.StructRef tid2, _) =>
++ if Tid.equal (tid1, tid2) then SOME ty1
++ else NONE
++ | (Ast.UnionRef tid1, _, Ast.UnionRef tid2, _) =>
+ if Tid.equal (tid1, tid2) then SOME ty1
+ else NONE
+ | (Ast.Void, _, Ast.Void, _) => SOME ty1
+@@ -745,9 +750,12 @@ struct
+ | ([Ast.Void], nil) => (nil, nil) (* bugfix 15/jun/99: a function with a single void argument
+ * is a function of no args *)
+ *)
+- | ((_, nil, _) | (_, _, nil)) => ( ["Type Warning: function call has too few args"]
+- , nil
+- )
++ | (_, nil, _) => (["Type Warning: function call has too few args"]
++ , nil
++ )
++ | (_, _, nil) => (["Type Warning: function call has too few args"]
++ , nil
++ )
+ | (nil, argl, _) => (["Type Warning: function call has too many args"]
+ , List.map (functionArgConv tidtab) argl
+ )
+diff --git a/src/ckit-lib.mlb b/src/ckit-lib.mlb
+new file mode 100644
+index 0000000..70a2919
+--- /dev/null
++++ b/src/ckit-lib.mlb
+@@ -0,0 +1,888 @@
++
++ann
++ "nonexhaustiveMatch warn" "redundantMatch warn"
++ "sequenceNonUnit ignore"
++ "warnUnused false" "forceUsed"
++in
++
++local
++ basis l4 =
++ bas
++ (* $/basis.cm ====> *) $(SML_LIB)/basis/basis.mlb
+ end
-+ local
-+ variants/type-check-control-sig.sml
-+ in
-+ signature gs_1 = TYPECHECKCONTROL
++ basis l24 =
++ bas
++ (* $/smlnj-lib.cm ====> *) $(SML_LIB)/smlnj-lib/Util/smlnj-lib.mlb
+ end
-+ local
-+ variants/parse-control-sig.sml
-+ in
-+ signature gs_2 = PARSECONTROL
++ basis l71 =
++ bas
++ (* $/pp-lib.cm ====> *) $(SML_LIB)/smlnj-lib/PP/pp-lib.mlb
+ end
-+ local
-+ signature PARSECONTROL = gs_2
-+ signature TYPECHECKCONTROL = gs_1
-+ variants/config-sig.sml
-+ in
-+ signature gs_3 = CONFIG
++ basis l96 =
++ bas
++ (* $/ml-yacc-lib.cm ====> *) $(SML_LIB)/mlyacc-lib/mlyacc-lib.mlb
+ end
-+ local
-+ signature CONFIG = gs_3
-+ signature PARSECONTROL = gs_2
-+ signature TYPECHECKCONTROL = gs_1
-+ structure TextIO = gs_0
-+ variants/ansic/config.sml
-+ in
-+ structure gs_4 = Config
-+ end
-+ local
-+ open l24
-+ in
-+ functor gs_5 = HashTableFn
-+ end
-+ local
-+ ast/uidtabimp-sig.sml
-+ in
-+ signature gs_6 = UIDTABIMP
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_7 = Word
-+ end
-+ local
-+ structure Word = gs_7
-+ ast/uid-sig.sml
-+ in
-+ signature gs_8 = UID
-+ end
-+ local
-+ functor HashTableFn = gs_5
-+ signature UID = gs_8
-+ signature UIDTABIMP = gs_6
-+ ast/uidtabimp-fn.sml
-+ in
-+ functor gs_9 = UidtabImpFn
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_10 = Int
-+ end
-+ local
-+ structure Int = gs_10
-+ signature UID = gs_8
-+ structure Word = gs_7
-+ ast/uid-fn.sml
-+ in
-+ functor gs_11 = UidFn
-+ end
-+ local
-+ signature UID = gs_8
-+ functor UidFn = gs_11
-+ ast/aid.sml
-+ in
-+ structure gs_12 = Aid
-+ end
-+ local
-+ structure Aid = gs_12
-+ functor UidtabImpFn = gs_9
-+ ast/aidtab.sml
-+ in
-+ structure gs_13 = Aidtab
-+ end
-+ local
-+ open l24
-+ in
-+ structure gs_14 = Format
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_15 = String
-+ end
-+ local
-+ parser/util/sourcemap-sig.sml
-+ in
-+ signature gs_16 = SOURCE_MAP
-+ end
-+ local
-+ structure Config = gs_4
-+ structure Format = gs_14
-+ structure Int = gs_10
-+ signature SOURCE_MAP = gs_16
-+ structure String = gs_15
-+ parser/util/sourcemap.sml
-+ in
-+ structure gs_17 = SourceMap
-+ end
-+ local
-+ open l71
-+ in
-+ functor gs_18 = PPStreamFn
-+ end
-+ local
-+ open l71
-+ in
-+ structure gs_19 = StringToken
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_20 = StringCvt
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_21 = List
-+ end
-+ local
-+ structure List = gs_21
-+ functor PPStreamFn = gs_18
-+ structure String = gs_15
-+ structure StringCvt = gs_20
-+ structure StringToken = gs_19
-+ parser/util/old-pp.sml
-+ in
-+ signature gs_22 = OLD_PRETTYPRINT
-+ structure gs_23 = OldPrettyPrint
-+ end
-+ local
-+ structure Format = gs_14
-+ signature OLD_PRETTYPRINT = gs_22
-+ structure OldPrettyPrint = gs_23
-+ structure SourceMap = gs_17
-+ structure TextIO = gs_0
-+ parser/util/error-sig.sml
-+ in
-+ signature gs_24 = ERROR
-+ end
-+ local
-+ signature ERROR = gs_24
-+ structure Format = gs_14
-+ signature OLD_PRETTYPRINT = gs_22
-+ structure OldPrettyPrint = gs_23
-+ structure SourceMap = gs_17
-+ structure TextIO = gs_0
-+ parser/util/error.sml
-+ in
-+ structure gs_25 = Error
-+ end
-+ local
-+ open l96
-+ in
-+ functor gs_26 = Join
-+ functor gs_27 = JoinWithArg
-+ end
-+ local
-+ open l96
-+ in
-+ structure gs_28 = LrParser
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_29 = LargeInt
-+ end
-+ local
-+ parser/extensions/c/parse-tree-ext.sml
-+ in
-+ structure gs_30 = ParseTreeExt
-+ end
-+ local
-+ structure LargeInt = gs_29
-+ structure ParseTreeExt = gs_30
-+ structure SourceMap = gs_17
-+ parser/parse-tree-sig.sml
-+ in
-+ signature gs_31 = PARSETREE
-+ end
-+ local
-+ structure LargeInt = gs_29
-+ signature PARSETREE = gs_31
-+ structure ParseTreeExt = gs_30
-+ structure SourceMap = gs_17
-+ parser/parse-tree.sml
-+ in
-+ structure gs_32 = ParseTree
-+ end
-+ local
-+ structure Error = gs_25
-+ structure ParseTree = gs_32
-+ parser/parser-sig.sml
-+ in
-+ signature gs_33 = PARSER
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_34 = IO
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_35 = TextPrimIO
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_36 = IntInf
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_37 = CharVector
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_38 = Vector
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_39 = Real
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_40 = Char
-+ end
-+ local
-+ open l24
-+ in
-+ structure gs_41 = AtomTable
-+ end
-+ local
-+ open l24
-+ in
-+ structure gs_42 = Atom
-+ end
-+ local
-+ structure Atom = gs_42
-+ structure AtomTable = gs_41
-+ structure Config = gs_4
-+ parser/grammar/tdefs.sml
-+ in
-+ signature gs_43 = TYPEDEFS
-+ structure gs_44 = TypeDefs
-+ end
-+ local
-+ open l96
-+ in
-+ signature gs_45 = ARG_LEXER
-+ signature gs_46 = ARG_PARSER
-+ signature gs_47 = LEXER
-+ signature gs_48 = LR_PARSER
-+ signature gs_49 = LR_TABLE
-+ signature gs_50 = PARSER
-+ signature gs_51 = PARSER_DATA
-+ signature gs_52 = STREAM
-+ signature gs_53 = TOKEN
-+ end
-+ local
-+ signature ARG_LEXER = gs_45
-+ signature ARG_PARSER = gs_46
-+ signature LEXER = gs_47
-+ signature LR_PARSER = gs_48
-+ signature LR_TABLE = gs_49
-+ structure LargeInt = gs_29
-+ signature PARSER = gs_50
-+ signature PARSER_DATA = gs_51
-+ signature STREAM = gs_52
-+ signature TOKEN = gs_53
-+ parser/grammar/c.grm.sig
-+ in
-+ signature gs_54 = C_LRVALS
-+ signature gs_55 = C_TOKENS
-+ end
-+ local
-+ structure Atom = gs_42
-+ structure AtomTable = gs_41
-+ signature C_LRVALS = gs_54
-+ signature C_TOKENS = gs_55
-+ structure Config = gs_4
-+ signature TYPEDEFS = gs_43
-+ structure TypeDefs = gs_44
-+ parser/grammar/tokentable.sml
-+ in
-+ signature gs_56 = TOKENTABLE
-+ functor gs_57 = TokenTable
-+ end
-+ local
-+ signature C_LRVALS = gs_54
-+ signature C_TOKENS = gs_55
-+ structure Char = gs_40
-+ structure CharVector = gs_37
-+ structure IO = gs_34
-+ structure Int = gs_10
-+ structure IntInf = gs_36
-+ structure LargeInt = gs_29
-+ structure Real = gs_39
-+ structure SourceMap = gs_17
-+ structure String = gs_15
-+ structure StringCvt = gs_20
-+ signature TOKENTABLE = gs_56
-+ structure TextIO = gs_0
-+ structure TextPrimIO = gs_35
-+ functor TokenTable = gs_57
-+ structure Vector = gs_38
-+ parser/grammar/c.lex.sml
-+ in
-+ functor gs_58 = CLexFun
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_59 = Array
-+ end
-+ local
-+ signature ARG_LEXER = gs_45
-+ signature ARG_PARSER = gs_46
-+ structure Array = gs_59
-+ signature C_LRVALS = gs_54
-+ signature C_TOKENS = gs_55
-+ structure Char = gs_40
-+ structure Error = gs_25
-+ signature LEXER = gs_47
-+ signature LR_PARSER = gs_48
-+ signature LR_TABLE = gs_49
-+ structure LargeInt = gs_29
-+ structure List = gs_21
-+ signature PARSER = gs_50
-+ signature PARSER_DATA = gs_51
-+ structure ParseTree = gs_32
-+ signature STREAM = gs_52
-+ structure SourceMap = gs_17
-+ structure String = gs_15
-+ signature TOKEN = gs_53
-+ signature TYPEDEFS = gs_43
-+ structure TypeDefs = gs_44
-+ parser/grammar/c.grm.sml
-+ in
-+ functor gs_60 = LrValsFun
-+ end
-+ local
-+ functor CLexFun = gs_58
-+ structure Error = gs_25
-+ functor Join = gs_26
-+ functor JoinWithArg = gs_27
-+ structure LrParser = gs_28
-+ functor LrValsFun = gs_60
-+ signature PARSER = gs_33
-+ structure SourceMap = gs_17
-+ signature TOKENTABLE = gs_56
-+ signature TYPEDEFS = gs_43
-+ structure TextIO = gs_0
-+ functor TokenTable = gs_57
-+ structure TypeDefs = gs_44
-+ parser/parser.sml
-+ in
-+ structure gs_61 = Parser
-+ end
-+ local
-+ open l24
-+ in
-+ structure gs_62 = HashString
-+ end
-+ local
-+ signature UID = gs_8
-+ functor UidFn = gs_11
-+ ast/tid.sml
-+ in
-+ structure gs_63 = Tid
-+ end
-+ local
-+ structure Tid = gs_63
-+ ast/symbol-sig.sml
-+ in
-+ signature gs_64 = SYMBOL
-+ end
-+ local
-+ structure HashString = gs_62
-+ structure Int = gs_10
-+ signature SYMBOL = gs_64
-+ structure String = gs_15
-+ structure Tid = gs_63
-+ structure Word = gs_7
-+ ast/symbol.sml
-+ in
-+ structure gs_65 = Symbol
-+ end
-+ local
-+ signature UID = gs_8
-+ functor UidFn = gs_11
-+ ast/pid.sml
-+ in
-+ structure gs_66 = Pid
-+ end
-+ local
-+ ast/extensions/c/ast-ext.sml
-+ in
-+ structure gs_67 = AstExt
-+ end
-+ local
-+ structure Aid = gs_12
-+ structure AstExt = gs_67
-+ structure LargeInt = gs_29
-+ structure Pid = gs_66
-+ structure SourceMap = gs_17
-+ structure Symbol = gs_65
-+ structure Tid = gs_63
-+ ast/ast-sig.sml
-+ in
-+ signature gs_68 = AST
-+ end
-+ local
-+ signature AST = gs_68
-+ structure Aid = gs_12
-+ structure AstExt = gs_67
-+ structure LargeInt = gs_29
-+ structure Pid = gs_66
-+ structure SourceMap = gs_17
-+ structure Symbol = gs_65
-+ structure Tid = gs_63
-+ ast/ast.sml
-+ in
-+ structure gs_69 = Ast
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure LargeInt = gs_29
-+ structure Pid = gs_66
-+ structure SourceMap = gs_17
-+ structure Symbol = gs_65
-+ structure Tid = gs_63
-+ ast/bindings.sml
-+ in
-+ structure gs_70 = Bindings
-+ end
-+ local
-+ open l24
-+ in
-+ functor gs_71 = BinaryMapFn
-+ end
-+ local
-+ open l24
-+ in
-+ signature gs_72 = ORD_MAP
-+ end
-+ local
-+ structure Tid = gs_63
-+ functor UidtabImpFn = gs_9
-+ ast/tidtab.sml
-+ in
-+ structure gs_73 = Tidtab
-+ end
-+ local
-+ structure Aidtab = gs_13
-+ structure Ast = gs_69
-+ structure Bindings = gs_70
-+ structure Tidtab = gs_73
-+ ast/tables.sml
-+ in
-+ structure gs_74 = Tables
-+ end
-+ local
-+ structure Aid = gs_12
-+ structure Ast = gs_69
-+ structure Bindings = gs_70
-+ structure Error = gs_25
-+ structure LargeInt = gs_29
-+ signature ORD_MAP = gs_72
-+ structure SourceMap = gs_17
-+ structure Symbol = gs_65
-+ structure Tables = gs_74
-+ structure Tid = gs_63
-+ ast/state-sig.sml
-+ in
-+ signature gs_75 = STATE
-+ end
-+ local
-+ structure Aid = gs_12
-+ structure Aidtab = gs_13
-+ structure Ast = gs_69
-+ functor BinaryMapFn = gs_71
-+ structure Bindings = gs_70
-+ structure Error = gs_25
-+ structure LargeInt = gs_29
-+ structure List = gs_21
-+ structure Pid = gs_66
-+ signature STATE = gs_75
-+ structure SourceMap = gs_17
-+ structure Symbol = gs_65
-+ structure Tables = gs_74
-+ structure Tid = gs_63
-+ structure Tidtab = gs_73
-+ ast/state.sml
-+ in
-+ structure gs_76 = State
-+ end
-+ local
-+ ast/sizes-sig.sml
-+ in
-+ signature gs_77 = SIZES
-+ end
-+ local
-+ signature SIZES = gs_77
-+ ast/sizes.sml
-+ in
-+ structure gs_78 = Sizes
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure Bindings = gs_70
-+ structure Sizes = gs_78
-+ structure State = gs_76
-+ structure Tables = gs_74
-+ structure TextIO = gs_0
-+ structure Tidtab = gs_73
-+ ast/parse-to-ast-sig.sml
-+ in
-+ signature gs_79 = PARSE_TO_AST
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_80 = ListPair
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_81 = Option
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure Bindings = gs_70
-+ structure Error = gs_25
-+ structure ParseTree = gs_32
-+ structure Sizes = gs_78
-+ structure State = gs_76
-+ structure Tables = gs_74
-+ structure Tidtab = gs_73
-+ ast/build-ast-sig.sml
-+ in
-+ signature gs_82 = BUILD_AST
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure ParseTree = gs_32
-+ structure ParseTreeExt = gs_30
-+ structure State = gs_76
-+ ast/cnv-ext-sig.sml
-+ in
-+ signature gs_83 = CNVEXT
-+ end
-+ local
-+ structure Ast = gs_69
-+ signature CNVEXT = gs_83
-+ structure ParseTree = gs_32
-+ structure ParseTreeExt = gs_30
-+ structure State = gs_76
-+ ast/extensions/c/cnv-ext.sml
-+ in
-+ structure gs_84 = CnvExt
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure Bindings = gs_70
-+ structure Pid = gs_66
-+ structure Symbol = gs_65
-+ ast/simplify-assign-ops.sml
-+ in
-+ structure gs_85 = SimplifyAssignOps
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure Bindings = gs_70
-+ signature OLD_PRETTYPRINT = gs_22
-+ structure OldPrettyPrint = gs_23
-+ structure Tables = gs_74
-+ structure Tid = gs_63
-+ ast/pp/pp-ast-sig.sml
-+ in
-+ signature gs_86 = PP_AST
-+ end
-+ local
-+ open l4
-+ in
-+ structure gs_87 = Int32
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure Int = gs_10
-+ structure Int32 = gs_87
-+ structure LargeInt = gs_29
-+ signature OLD_PRETTYPRINT = gs_22
-+ structure OldPrettyPrint = gs_23
-+ structure Pid = gs_66
-+ structure Real = gs_39
-+ structure String = gs_15
-+ structure Symbol = gs_65
-+ structure Tables = gs_74
-+ structure TextIO = gs_0
-+ structure Tid = gs_63
-+ structure Tidtab = gs_73
-+ ast/pp/pp-lib.sml
-+ in
-+ structure gs_88 = PPLib
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure AstExt = gs_67
-+ signature OLD_PRETTYPRINT = gs_22
-+ structure OldPrettyPrint = gs_23
-+ structure Tables = gs_74
-+ ast/pp/pp-ast-ext-sig.sml
-+ in
-+ signature gs_89 = PPASTEXT
-+ end
-+ local
-+ signature PPASTEXT = gs_89
-+ ast/extensions/c/pp-ast-ext-fn.sml
-+ in
-+ functor gs_90 = PPAstExtFn
-+ end
-+ local
-+ structure Ast = gs_69
-+ signature OLD_PRETTYPRINT = gs_22
-+ structure OldPrettyPrint = gs_23
-+ structure Tables = gs_74
-+ ast/pp/pp-ast-adornment-sig.sml
-+ in
-+ signature gs_91 = PPASTADORNMENT
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure Bindings = gs_70
-+ structure Int = gs_10
-+ structure LargeInt = gs_29
-+ structure List = gs_21
-+ signature OLD_PRETTYPRINT = gs_22
-+ structure OldPrettyPrint = gs_23
-+ structure Option = gs_81
-+ signature PPASTADORNMENT = gs_91
-+ functor PPAstExtFn = gs_90
-+ structure PPLib = gs_88
-+ signature PP_AST = gs_86
-+ structure Pid = gs_66
-+ structure SourceMap = gs_17
-+ structure Tid = gs_63
-+ structure Tidtab = gs_73
-+ ast/pp/pp-ast-fn.sml
-+ in
-+ functor gs_92 = PPAstFn
-+ end
-+ local
-+ structure Ast = gs_69
-+ signature PPASTADORNMENT = gs_91
-+ functor PPAstFn = gs_92
-+ ast/pp/pp-ast.sml
-+ in
-+ structure gs_93 = PPAst
-+ end
-+ local
-+ structure Ast = gs_69
-+ ast/ctype-eq.sml
-+ in
-+ structure gs_94 = CTypeEq
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure Sizes = gs_78
-+ structure Tables = gs_74
-+ ast/sizeof-sig.sml
-+ in
-+ signature gs_95 = SIZEOF
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure LargeInt = gs_29
-+ structure Tables = gs_74
-+ ast/type-util-sig.sml
-+ in
-+ signature gs_96 = TYPE_UTIL
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure Bindings = gs_70
-+ structure Config = gs_4
-+ structure Int = gs_10
-+ structure List = gs_21
-+ structure PPAst = gs_93
-+ structure PPLib = gs_88
-+ structure Pid = gs_66
-+ structure Symbol = gs_65
-+ signature TYPE_UTIL = gs_96
-+ structure Tables = gs_74
-+ structure Tid = gs_63
-+ structure Tidtab = gs_73
-+ ast/type-util.sml
-+ in
-+ structure gs_97 = TypeUtil
-+ end
-+ local
-+ structure Ast = gs_69
-+ functor BinaryMapFn = gs_71
-+ structure Bindings = gs_70
-+ structure Config = gs_4
-+ structure Int = gs_10
-+ structure LargeInt = gs_29
-+ structure List = gs_21
-+ structure Pid = gs_66
-+ signature SIZEOF = gs_95
-+ structure Sizes = gs_78
-+ structure Tables = gs_74
-+ structure TextIO = gs_0
-+ structure Tid = gs_63
-+ structure Tidtab = gs_73
-+ structure TypeUtil = gs_97
-+ ast/sizeof.sml
-+ in
-+ structure gs_98 = Sizeof
-+ end
-+ local
-+ structure ParseTree = gs_32
-+ structure Real = gs_39
-+ structure Tid = gs_63
-+ ast/anonymous-structs.sml
-+ in
-+ structure gs_99 = AnonymousStructs
-+ structure gs_100 = TyEq
-+ end
-+ local
-+ structure Aid = gs_12
-+ structure Ast = gs_69
-+ structure Bindings = gs_70
-+ structure Tid = gs_63
-+ ast/initializer-normalizer-sig.sml
-+ in
-+ signature gs_101 = INITIALIZER_NORMALIZER
-+ end
-+ local
-+ structure Aid = gs_12
-+ structure Ast = gs_69
-+ structure Bindings = gs_70
-+ signature INITIALIZER_NORMALIZER = gs_101
-+ structure LargeInt = gs_29
-+ structure SourceMap = gs_17
-+ structure String = gs_15
-+ structure Tid = gs_63
-+ ast/initializer-normalizer.sml
-+ in
-+ structure gs_102 = InitializerNormalizer
-+ end
-+ local
-+ structure Aid = gs_12
-+ structure Aidtab = gs_13
-+ structure AnonymousStructs = gs_99
-+ structure Ast = gs_69
-+ signature BUILD_AST = gs_82
-+ functor BinaryMapFn = gs_71
-+ structure Bindings = gs_70
-+ structure CTypeEq = gs_94
-+ structure CnvExt = gs_84
-+ structure Config = gs_4
-+ structure Error = gs_25
-+ structure InitializerNormalizer = gs_102
-+ structure Int = gs_10
-+ structure LargeInt = gs_29
-+ structure List = gs_21
-+ structure ListPair = gs_80
-+ structure Option = gs_81
-+ structure PPAst = gs_93
-+ structure PPLib = gs_88
-+ structure ParseTree = gs_32
-+ structure ParseTreeExt = gs_30
-+ structure Pid = gs_66
-+ structure SimplifyAssignOps = gs_85
-+ structure Sizeof = gs_98
-+ structure Sizes = gs_78
-+ structure SourceMap = gs_17
-+ structure State = gs_76
-+ structure String = gs_15
-+ structure Symbol = gs_65
-+ structure Tables = gs_74
-+ structure TextIO = gs_0
-+ structure Tid = gs_63
-+ structure Tidtab = gs_73
-+ structure TyEq = gs_100
-+ structure TypeUtil = gs_97
-+ structure Word = gs_7
-+ ast/build-ast.sml
-+ in
-+ structure gs_103 = BuildAst
-+ end
-+ local
-+ structure Ast = gs_69
-+ structure Bindings = gs_70
-+ structure BuildAst = gs_103
-+ structure Error = gs_25
-+ signature PARSE_TO_AST = gs_79
-+ structure PPAst = gs_93
-+ structure PPLib = gs_88
-+ structure Parser = gs_61
-+ structure Sizes = gs_78
-+ structure State = gs_76
-+ structure Tables = gs_74
-+ structure TextIO = gs_0
-+ structure Tidtab = gs_73
-+ ast/parse-to-ast.sml
-+ in
-+ structure gs_104 = ParseToAst
-+ end
-+ in
-+ signature AST = gs_68
-+ structure Aidtab = gs_13
-+ structure Ast = gs_69
-+ structure Bindings = gs_70
-+ signature CONFIG = gs_3
-+ structure Config = gs_4
-+ signature PARSECONTROL = gs_2
-+ signature PARSER = gs_33
-+ signature PARSETREE = gs_31
-+ signature PARSE_TO_AST = gs_79
-+ structure PPAst = gs_93
-+ signature PP_AST = gs_86
-+ structure ParseToAst = gs_104
-+ structure ParseTree = gs_32
-+ structure Parser = gs_61
-+ structure Pid = gs_66
-+ signature SOURCE_MAP = gs_16
-+ structure Sizeof = gs_98
-+ structure Sizes = gs_78
-+ structure SourceMap = gs_17
-+ structure State = gs_76
-+ structure Symbol = gs_65
-+ signature TYPECHECKCONTROL = gs_1
-+ structure Tables = gs_74
-+ structure Tid = gs_63
-+ structure Tidtab = gs_73
-+ structure TypeUtil = gs_97
-+ signature UID = gs_8
-+ signature UIDTABIMP = gs_6
-+ end
-+ end
-+
-+ end
-diff -N -C 2 -r ckit/src/parser/grammar/c.lex.sml ckit-mlton/src/parser/grammar/c.lex.sml
-*** ckit/src/parser/grammar/c.lex.sml 2010-02-03 11:40:52.000000000 -0500
---- ckit-mlton/src/parser/grammar/c.lex.sml 2009-03-27 18:29:56.000000000 -0400
-***************
-*** 230,234 ****
-
- val yytable =
-! #[
- ]
-
---- 230,234 ----
-
- val yytable =
-! Vector.fromList [
- ]
-
-diff -N -C 2 -r ckit/src/parser/parse-tree-sig.sml ckit-mlton/src/parser/parse-tree-sig.sml
-*** ckit/src/parser/parse-tree-sig.sml 2010-02-03 11:40:53.000000000 -0500
---- ckit-mlton/src/parser/parse-tree-sig.sml 2009-03-27 18:28:04.000000000 -0400
-***************
-*** 28,33 ****
- | LshiftAssign | RshiftAssign
- | Uplus
-! | SizeofType of ctype
-! | OperatorExt of operatorExt
-
- and expression
---- 28,35 ----
- | LshiftAssign | RshiftAssign
- | Uplus
-! | SizeofType of
-! (* ctype *) {qualifiers : qualifier list, specifiers : specifier list}
-! | OperatorExt of
-! ParseTreeExt.operatorExt
-
- and expression
-***************
-*** 41,48 ****
- | QuestionColon of expression * expression * expression
- | Call of expression * expression list
-! | Cast of ctype * expression
- | InitList of expression list
- | MARKexpression of (SourceMap.location * expression)
-! | ExprExt of expressionExt
-
- and specifier
---- 43,57 ----
- | QuestionColon of expression * expression * expression
- | Call of expression * expression list
-! | Cast of
-! (* ctype *) {qualifiers : qualifier list, specifiers : specifier list} *
-! expression
- | InitList of expression list
- | MARKexpression of (SourceMap.location * expression)
-! | ExprExt of
-! (specifier, declarator,
-! (* ctype *) {qualifiers : qualifier list, specifiers : specifier list},
-! (* decltype *) {qualifiers : qualifier list, specifiers : specifier list, storage : storage list},
-! operator, expression, statement)
-! ParseTreeExt.expr
More information about the MLton-commit
mailing list