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