CVS: sml-dist/src/compiler/Elaborator/modules sigmatch.sml, 1.6.8.11, 1.6.8.12

David MacQueen <[email protected]> Tue, 25 Jul 2006 10:02:22 -0700
Newsgroups gmane.comp.lang.sml.smlnj.commits
Message-ID <[email protected]>
Update of /cvsroot/smlnj/sml-dist/src/compiler/Elaborator/modules
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv3100/src/compiler/Elaborator/modules

Modified Files:
      Tag: primop-branch-2
	sigmatch.sml 
Log Message:
added questions to notes, touched up sigmatch

Index: sigmatch.sml
===================================================================
RCS file: /cvsroot/smlnj/sml-dist/src/compiler/Elaborator/modules/sigmatch.sml,v
retrieving revision 1.6.8.11
retrieving revision 1.6.8.12
diff -C2 -d -r1.6.8.11 -r1.6.8.12
*** sigmatch.sml	24 Jul 2006 23:10:58 -0000	1.6.8.11
--- sigmatch.sml	25 Jul 2006 17:02:19 -0000	1.6.8.12
***************
*** 199,204 ****
        val res = (Unify.unifyTy(actinst, specinst); true) handle _ => false
        (* dbm: shouldn't this unifyTy always succeed, because when called
!        in packElems, the structure will already have been matched against
!        the signature (according to the comment before packStr) *)
  
        val instbtvs = map TU.tyvarType insttys0
--- 199,204 ----
        val res = (Unify.unifyTy(actinst, specinst); true) handle _ => false
        (* dbm: shouldn't this unifyTy always succeed, because when called
!        * in packElems, the structure will already have been matched against
!        * the signature (according to the comment before packStr)  [KM ???]*)
  
        val instbtvs = map TU.tyvarType insttys0
***************
*** 274,278 ****
  				      elements=strElements,...},
  			   rlzn as {stamp=strStamp,entities=strEntEnv,...},
! 			   access = rootAcc, prim = rootInfo },
                strName : S.symbol,
                depth, matchEntEnv, 
--- 274,278 ----
  				      elements=strElements,...},
  			   rlzn as {stamp=strStamp,entities=strEntEnv,...},
! 			   access = rootAcc, prim = rootPrim },
                strName : S.symbol,
                depth, matchEntEnv, 
***************
*** 784,788 ****
                                                      ST.toString entVar])
                       val (strStr, strEntVar) = 
!                        MU.getStr(strElements, strEntEnv, sym, rootAcc, rootInfo)
  
                       (* verify spec definition, if any *)
--- 784,788 ----
                                                      ST.toString entVar])
                       val (strStr, strEntVar) = 
!                        MU.getStr(strElements, strEntEnv, sym, rootAcc, rootPrim)
  
                       (* verify spec definition, if any *)
***************
*** 837,841 ****
  
                       val (strFct, fctEntVar) = 
!                        MU.getFct(strElements, strEntEnv, sym, rootAcc, rootInfo)
                       val exp' = M.VARfct(rev(fctEntVar::epath))
                       val rpath' = IP.extend(rpath,sym)
--- 837,841 ----
  
                       val (strFct, fctEntVar) = 
!                        MU.getFct(strElements, strEntEnv, sym, rootAcc, rootPrim)
                       val exp' = M.VARfct(rev(fctEntVar::epath))
                       val rpath' = IP.extend(rpath,sym)
***************
*** 864,868 ****
                           val acttyp = typeInOriginal("$actty(val/val)", acttyp)
                           val dacc = DA.selAcc(rootAcc, actslot)
!                          val prim = PrimOpId.selValPrimFromStrPrim(rootInfo, actslot)
                           val (btvs,ptvs) = matchTypes(spectyp, acttyp, sym)
  
--- 864,868 ----
                           val acttyp = typeInOriginal("$actty(val/val)", acttyp)
                           val dacc = DA.selAcc(rootAcc, actslot)
!                          val prim = PrimOpId.selValPrimFromStrPrim(rootPrim, actslot)
                           val (btvs,ptvs) = matchTypes(spectyp, acttyp, sym)
  
***************
*** 1214,1218 ****
  	     str as M.STR {access=rootAcc,
  			   rlzn=srcRlzn as {entities=srcEntEnv,...},
! 			   prim=rootInfo, ... },
               abstycs, strName, depth, entEnv, rpath, statenv, region, 
               compInfo as {mkLvar=mkv, error, ...}: EU.compInfo) 
--- 1214,1218 ----
  	     str as M.STR {access=rootAcc,
  			   rlzn=srcRlzn as {entities=srcEntEnv,...},
! 			   prim=rootPrim, ... },
               abstycs, strName, depth, entEnv, rpath, statenv, region, 
               compInfo as {mkLvar=mkv, error, ...}: EU.compInfo) 
***************
*** 1242,1246 ****
  			 val srcStr = M.STR{sign=thisSpecsig, rlzn=srcStrRlzn,
  					    access=DA.selAcc(rootAcc,s),
! 					    prim=PrimOpId.selStrPrimId(rootInfo,s)}
  
  			 val rpath' = IP.extend(rpath, sym)
--- 1242,1246 ----
  			 val srcStr = M.STR{sign=thisSpecsig, rlzn=srcStrRlzn,
  					    access=DA.selAcc(rootAcc,s),
! 					    prim=PrimOpId.selStrPrimId(rootPrim,s)}
  
  			 val rpath' = IP.extend(rpath, sym)
***************
*** 1272,1276 ****
  			     M.FCT {sign=thisSpecsig, rlzn=srcFctRlzn,
  				    access=DA.selAcc(rootAcc,s),
! 				    prim=PrimOpId.selStrPrimId(rootInfo,s)}
  
  			 val rpath' = IP.extend(rpath, sym)
--- 1272,1276 ----
  			     M.FCT {sign=thisSpecsig, rlzn=srcFctRlzn,
  				    access=DA.selAcc(rootAcc,s),
! 				    prim=PrimOpId.selStrPrimId(rootPrim,s)}
  
  			 val rpath' = IP.extend(rpath, sym)
***************
*** 1299,1311 ****
                     val srctyp = typeInSrc("$spec-srcty(packStr-val)", spectyp)
                     val dacc = DA.selAcc(rootAcc, s)
!                    val dinfo = PrimOpId.selValPrimFromStrPrim(rootInfo, s)
  (* dbm: assume that eqflag will always be true because of prior successful
   * sigmatch, therefore this does nothing ---
                     val (instys, btvs, resinst, eqflag) = 
!                        absEqvTy(restyp, srctyp, dinfo)
  *)
                     val spath = SP.SPATH[sym]
                     val srcvar = VALvar{path=spath, typ=ref srctyp,
!                                        access=dacc, prim=dinfo}
  
  (* does nothing -- just use decs and srcvar below
--- 1299,1311 ----
                     val srctyp = typeInSrc("$spec-srcty(packStr-val)", spectyp)
                     val dacc = DA.selAcc(rootAcc, s)
!                    val prim = PrimOpId.selValPrimFromStrPrim(rootPrim, s)
  (* dbm: assume that eqflag will always be true because of prior successful
   * sigmatch, therefore this does nothing ---
                     val (instys, btvs, resinst, eqflag) = 
!                        absEqvTy(restyp, srctyp, prim)
  *)
                     val spath = SP.SPATH[sym]
                     val srcvar = VALvar{path=spath, typ=ref srctyp,
!                                        access=dacc, prim=prim}
  
  (* does nothing -- just use decs and srcvar below


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV