CVS: sml-dist/src/compiler/Elaborator/elaborate elabcore.sml, 1.8.4.2, 1.8.4.3 elabmod.sml, 1.2, 1.2.20.1 elabsig.sml, 1.2, 1.2.20.1
George Kuan <[email protected]> Mon, 10 Jul 2006 07:06:39 -0700
| Newsgroups | gmane.comp.lang.sml.smlnj.commits |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/smlnj/sml-dist/src/compiler/Elaborator/elaborate
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv18764/Elaborator/elaborate
Modified Files:
Tag: primop-branch-2
elabcore.sml elabmod.sml elabsig.sml
Log Message:
Elaborator compilers, updated Elaborate modules to use new PrimOpId and param ty vars
Index: elabcore.sml
===================================================================
RCS file: /cvsroot/smlnj/sml-dist/src/compiler/Elaborator/elaborate/elabcore.sml,v
retrieving revision 1.8.4.2
retrieving revision 1.8.4.3
diff -C2 -d -r1.8.4.2 -r1.8.4.3
*** elabcore.sml 7 Jul 2006 21:06:09 -0000 1.8.4.2
--- elabcore.sml 10 Jul 2006 14:06:37 -0000 1.8.4.3
***************
*** 95,99 ****
val dummyFNexp =
! FNexp([RULE(WILDpat,RAISEexp(CONexp(V.bogusEXN,NONE),UNDEFty))],UNDEFty)
(** Updated CONexp ty option type -GK *)
--- 95,99 ----
val dummyFNexp =
! FNexp([RULE(WILDpat,RAISEexp(CONexp(V.bogusEXN,[]),UNDEFty))],UNDEFty)
(** Updated CONexp ty option type -GK *)
***************
*** 123,127 ****
local
! fun mkCoreExp name env = VARexp (ref (CoreAccess.getVar(env, name)), NONE)
in
val mkAssignExp = mkCoreExp "assign"
--- 123,127 ----
local
! fun mkCoreExp name env = VARexp (ref (CoreAccess.getVar(env, name)), [])
in
val mkAssignExp = mkCoreExp "assign"
***************
*** 172,176 ****
let val v = newVALvar(S.varSymbol "x")
in APPexp(FNexp(completeMatch[RULE(APPpat(BT.dollarDcon,[],VARpat v),
! VARexp(ref v,NONE))],
UNDEFty),
e)
--- 172,176 ----
let val v = newVALvar(S.varSymbol "x")
in APPexp(FNexp(completeMatch[RULE(APPpat(BT.dollarDcon,[],VARpat v),
! VARexp(ref v,[]))],
UNDEFty),
e)
***************
*** 180,184 ****
fun delayExp e =
! APPexp(CONexp(BT.dollarDcon,NONE), e)
(* lrvbMakeY n: build declaration of n-ary Y combinator for lazy val rec *)
--- 180,184 ----
fun delayExp e =
! APPexp(CONexp(BT.dollarDcon,[]), e)
(* lrvbMakeY n: build declaration of n-ary Y combinator for lazy val rec *)
***************
*** 206,211 ****
(* "ref($(raise Match))" *)
! fun rdrExp _ = APPexp(CONexp(BT.refDcon,NONE),
! delayExp(RAISEexp(CONexp(exn,NONE),UNDEFty)))
val rpat = TUPLEpat (map VARpat rvars)
val rexp = TUPLEexp (repeat rdrExp)
--- 206,211 ----
(* "ref($(raise Match))" *)
! fun rdrExp _ = APPexp(CONexp(BT.refDcon,[]),
! delayExp(RAISEexp(CONexp(exn,[]),UNDEFty)))
val rpat = TUPLEpat (map VARpat rvars)
val rexp = TUPLEexp (repeat rdrExp)
***************
*** 213,225 ****
(* "$(force(!ri))" *)
! fun dfbr rv = hold(APPexp(mkBangExp env,VARexp(ref rv,NONE)))
val ddec = VALdec[VB{pat=VARpat dvar, exp=TUPLEexp(map dfbr rvars),
boundtvs=[],tyvars=ref[]}]
! fun dexp () = VARexp(ref dvar,NONE)
fun setrExp (rv,fv) =
APPexp(mkAssignExp env,
! TUPLEexp([VARexp(ref rv,NONE),
! hold(APPexp(VARexp(ref fv,NONE),dexp()))]))
val updates = ListPair.map setrExp (rvars,fvars)
--- 213,225 ----
(* "$(force(!ri))" *)
! fun dfbr rv = hold(APPexp(mkBangExp env,VARexp(ref rv,[])))
val ddec = VALdec[VB{pat=VARpat dvar, exp=TUPLEexp(map dfbr rvars),
boundtvs=[],tyvars=ref[]}]
! fun dexp () = VARexp(ref dvar,[])
fun setrExp (rv,fv) =
APPexp(mkAssignExp env,
! TUPLEexp([VARexp(ref rv,[]),
! hold(APPexp(VARexp(ref fv,[]),dexp()))]))
val updates = ListPair.map setrExp (rvars,fvars)
***************
*** 457,473 ****
of VarExp path =>
((case LU.lookVal(env,SP.SPATH path,error region)
! of V.VAL v => VARexp(ref v,NONE)
| V.CON(d as DATACON{lazyp,const,...}) =>
if lazyp then (* LAZY *)
! if const then delayExp(CONexp(d,NONE))
else let val var = newVALvar(S.varSymbol "x")
in FNexp(completeMatch
[RULE(VARpat(var),
delayExp(
! APPexp(CONexp(d,NONE),
! VARexp(ref(var),NONE))))],
UNDEFty (* DBM: ? *))
end
! else CONexp(d, NONE)),
TS.empty, no_updt)
| IntExp s =>
--- 457,473 ----
of VarExp path =>
((case LU.lookVal(env,SP.SPATH path,error region)
! of V.VAL v => VARexp(ref v,[])
| V.CON(d as DATACON{lazyp,const,...}) =>
if lazyp then (* LAZY *)
! if const then delayExp(CONexp(d,[]))
else let val var = newVALvar(S.varSymbol "x")
in FNexp(completeMatch
[RULE(VARpat(var),
delayExp(
! APPexp(CONexp(d,[]),
! VARexp(ref(var),[]))))],
UNDEFty (* DBM: ? *))
end
! else CONexp(d, [])),
TS.empty, no_updt)
| IntExp s =>
***************
*** 581,585 ****
[RULE(RECORDpat{fields=[(s,VARpat v)], flex=true,
typ= ref UNDEFty},
! cMARKexp(VARexp(ref v,NONE),region))],UNDEFty)
end,
TS.empty, no_updt)
--- 581,585 ----
[RULE(RECORDpat{fields=[(s,VARpat v)], flex=true,
typ= ref UNDEFty},
! cMARKexp(VARexp(ref v,[]),region))],UNDEFty)
end,
TS.empty, no_updt)
***************
*** 792,796 ****
of VARexp(ref(VALvar{prim=dinfo,...}),_) =>
(case dinfo
! of Prim _ =>
(case pat
of CONSTRAINTpat(VARpat(VALvar{path,typ,
--- 792,796 ----
of VARexp(ref(VALvar{prim=dinfo,...}),_) =>
(case dinfo
! of PrimOpId.Prim _ =>
(case pat
of CONSTRAINTpat(VARpat(VALvar{path,typ,
***************
*** 816,820 ****
(let val (newpat,oldvars,newvars) = patproc(pat, compInfo)
(* this is the only call of patproc *)
! val b = map (fn v => VARexp(ref v,NONE)) newvars
val r = RULE(newpat, TUPLEexp(b))
val newexp = CASEexp(exp, completeBind[r], false)
--- 816,820 ----
(let val (newpat,oldvars,newvars) = patproc(pat, compInfo)
(* this is the only call of patproc *)
! val b = map (fn v => VARexp(ref v,[])) newvars
val r = RULE(newpat, TUPLEexp(b))
val newexp = CASEexp(exp, completeBind[r], false)
***************
*** 829,833 ****
(let val nv = newVALvar internalSym
val nvpat = VARpat(nv)
! val nvexp = VARexp(ref nv, NONE)
val nvdec =
--- 829,833 ----
(let val nv = newVALvar internalSym
val nvpat = VARpat(nv)
! val nvexp = VARexp(ref nv, [])
val nvdec =
***************
*** 992,996 ****
val declAppY =
VALdec[VB{pat=TUPLEpat(map VARpat lhsVars),
! exp=APPexp(VARexp(ref yvar,NONE),TUPLEexp fns),
tyvars=tvref,boundtvs=[]}]
--- 992,996 ----
val declAppY =
VALdec[VB{pat=TUPLEpat(map VARpat lhsVars),
! exp=APPexp(VARexp(ref yvar,[]),TUPLEexp fns),
tyvars=tvref,boundtvs=[]}]
***************
*** 999,1006 ****
val vb = if lazyp
then VB{pat=VARpat var2,
! exp=VARexp (ref var1,NONE),boundtvs=[],
tyvars=ref[]}
else VB{pat=APPpat(BT.dollarDcon,[],(VARpat var2)),
! exp=VARexp (ref var1,NONE),boundtvs=[],
tyvars=ref[]}
in (vb::vbs,var2::vars)
--- 999,1006 ----
val vb = if lazyp
then VB{pat=VARpat var2,
! exp=VARexp (ref var1,[]),boundtvs=[],
tyvars=ref[]}
else VB{pat=APPpat(BT.dollarDcon,[],(VARpat var2)),
! exp=VARexp (ref var1,[]),boundtvs=[],
tyvars=ref[]}
in (vb::vbs,var2::vars)
Index: elabmod.sml
===================================================================
RCS file: /cvsroot/smlnj/sml-dist/src/compiler/Elaborator/elaborate/elabmod.sml,v
retrieving revision 1.2
retrieving revision 1.2.20.1
diff -C2 -d -r1.2 -r1.2.20.1
*** elabmod.sml 15 Aug 2001 21:16:57 -0000 1.2
--- elabmod.sml 10 Jul 2006 14:06:37 -0000 1.2.20.1
***************
*** 590,597 ****
val dacc = DA.namedAcc(tempStrId, mkv)
! val dinfo = II.List (map MU.extractInfo locations)
in M.STR {sign=sign, rlzn=strRlzn, access=dacc,
! info=dinfo}
end
--- 590,597 ----
val dacc = DA.namedAcc(tempStrId, mkv)
! val dinfo = MU.strPrimElemInBinds locations
in M.STR {sign=sign, rlzn=strRlzn, access=dacc,
! prim=dinfo}
end
***************
*** 925,929 ****
let val paramDacc = DA.namedAcc(paramName, mkv)
in M.STR{sign=paramSig, rlzn=paramRlzn,
! access=paramDacc, info=II.Null}
end
--- 925,929 ----
let val paramDacc = DA.namedAcc(paramName, mkv)
in M.STR{sign=paramSig, rlzn=paramRlzn,
! access=paramDacc, prim=PrimOpId.StrE []}
end
***************
*** 1010,1014 ****
val dacc = DA.namedAcc(name, mkv)
! in M.FCT{sign=fctSig, rlzn=rlzn, access=dacc, info=II.Null}
end
--- 1010,1014 ----
val dacc = DA.namedAcc(name, mkv)
! in M.FCT{sign=fctSig, rlzn=rlzn, access=dacc, prim=PrimOpId.StrE []}
end
***************
*** 1187,1193 ****
val (bindStr, strEnt) =
case resStr
! of STR { rlzn, sign, access, info } =>
(STR{rlzn = rlzn, sign = sign,
! access = DA.namedAcc(name, mkv),info = info},
M.STRent rlzn)
| _ => (resStr, M.STRent M.bogusStrEntity)
--- 1187,1193 ----
val (bindStr, strEnt) =
case resStr
! of STR { rlzn, sign, access, prim } =>
(STR{rlzn = rlzn, sign = sign,
! access = DA.namedAcc(name, mkv),prim = prim},
M.STRent rlzn)
| _ => (resStr, M.STRent M.bogusStrEntity)
***************
*** 1309,1314 ****
val (bindFct, fctEnt) =
case fct
! of FCT {rlzn, sign, access, info} =>
! (FCT{rlzn = rlzn, sign = sign, info = info,
access = DA.namedAcc(name, mkv)},
FCTent rlzn)
--- 1309,1314 ----
val (bindFct, fctEnt) =
case fct
! of FCT {rlzn, sign, access, prim} =>
! (FCT{rlzn = rlzn, sign = sign, prim = prim,
access = DA.namedAcc(name, mkv)},
FCTent rlzn)
Index: elabsig.sml
===================================================================
RCS file: /cvsroot/smlnj/sml-dist/src/compiler/Elaborator/elaborate/elabsig.sml,v
retrieving revision 1.2
retrieving revision 1.2.20.1
diff -C2 -d -r1.2 -r1.2.20.1
*** elabsig.sml 15 Aug 2001 21:16:57 -0000 1.2
--- elabsig.sml 10 Jul 2006 14:06:37 -0000 1.2.20.1
***************
*** 316,320 ****
CONSTstrDef(STR{sign=sign,rlzn=rlzn,
access=Access.nullAcc,
! info=II.Null})
| _ => strDef
in loop1(rest,STRdef(lhspath,strDef)::defs)
--- 316,320 ----
CONSTstrDef(STR{sign=sign,rlzn=rlzn,
access=Access.nullAcc,
! prim=PrimOpId.StrE []})
| _ => strDef
in loop1(rest,STRdef(lhspath,strDef)::defs)
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642