📄 a garbage collector for c and c++.mht
字号:
-request@linux.hpl.hp.com?subject=3Dsubscribe</A>.=20
(Please ignore the instructions about web-based subscription. The listed =
web=20
site is behind the HP firewall.)=20
<P>The archives for these lists appear <A=20
href=3D"http://www.hpl.hp.com/hosted/linux/mail-archives">here</A>. The =
gc list=20
archive may also be read at <A=20
href=3D"http://dir.gmane.org/gmane.comp.programming.garbage-collection.bo=
ehmgc">gmane.org</A>.=20
<P>Some prior discussion of the collector has taken place on the gcc =
java=20
mailing list, whose archives appear <A=20
href=3D"http://gcc.gnu.org/ml/java/">here</A>, and also on <A=20
href=3D"http://lists.tunes.org/mailman/listinfo/gclist">http://lists.tune=
s.org/mailman/listinfo/gclist</A>.=20
<P>Comments and bug reports may also be sent to (<A=20
href=3D"mailto:Hans_Boehm@hp.com">mailto:Hans_Boehm@hp.com</A>) or (<A=20
href=3D"mailto:boehm@acm.org">boehm@acm.org</A>), but the gc mailing =
list is=20
usually preferred. <!-- Begin METRICS JavaScript --><!-- <script =
type=3D"text/javascript" language=3D"JavaScript" =
src=3D"http://welcome.hp-ww.com/country/us/eng/js/metrics.js"></script> =
-->
<SCRIPT language=3DJavaScript =
src=3D"http://www.hpl.hp.com/dev/hplabsmetrics.js"=20
type=3Dtext/javascript></SCRIPT>
<!-- End METRICS JavaScript --></P></BODY></HTML>
------=_NextPart_000_004A_01C711AD.5CD250D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.hpl.hp.com/dev/hplabsmetrics.js
/* HP Production Code - Release G.7.20050110a */
/* HP Control Variables */
var s_hp_enableMetaTagCode =3D true; // Pulls s_prop7-10 from meta tags =
if true and if s_prop7-9 are not already set.
var s_hp_optOut =3D false // WARNING: IF SET TO TRUE, PAGE WILL NOT BE =
TRACKED
/* Standard SiteCatalyst Variables */
var s_disableLegacyVars=3Dtrue
/* Specify the Report Suite ID(s) to track here */
var s_account=3D"hphqglobal,hphqwwhplabs"
/* Dynamic Accounts - note these accounts will not show up in s_account =
*/
var s_dynamicAccountSelection=3Dfalse
var s_dynamicAccountList=3D"devhphqtestaccount=3Dlocalhost,127.0.0.1"
var s_dynamicAccountMatch=3Dwindow.location.hostname + =
window.location.pathname
/* Link Tracking Config */
var s_trackDownloadLinks=3Dtrue
var s_trackExternalLinks=3Dtrue
var s_trackInlineStats=3Dtrue
var =
s_linkDownloadFileTypes=3D"exe,zip,wav,mp3,mov,mpg,avi,doc,pdf,xls,cgi,do=
t,pot,ppt,wmv,asx"
var s_linkInternalFilters=3D"hp,compaq,cpqcorp,javascript:"
var s_linkLeaveQueryString=3Dtrue
var s_linkTrackVars=3D"None"
var s_linkTrackEvents=3D"None"
/* Plugin Config */
var s_usePlugins=3Dtrue
function s_doPlugins() {
/******MTX Click Capture utility - captures links from MTX section of =
block**/
s_hp_captureMTXClicks();
/******eCommerce Jumpid and Jumpid Pathing Plug-in - remove slashes to =
use**/
/* Populates s_eVar15-20, s_prop2, and s_prop4 with JumpID information =
*/
s_hp_jumpIdProcessing() =20
}
/************************** PLUGINS SECTION *************************/
/* You may insert any plugins you wish to use here. */
/*
* Plugin: Get Plugin Modified Value
*/
function s_vp_getValue(vs)
{var k=3Dvs.substring(0,2)=3D=3D's_'?vs.substring(2):vs;return s_wd[
's_vpm_'+k]?s_wd['s_vpv_'+k]:s_gg(k)}
/*
* Plugin: Get Query String CGI Variable Value
*/
function s_vp_getCGI(vs,k)
{var v=3D'';if(k&&s_wd.location.search){var q=3Ds_wd.location.search,
qq=3Dq.indexOf('?');q=3Dqq<0?q:q.substring(qq+1);v=3Ds_pt(q,'&',s_cgif,
k)}s_vpr(vs,v)}function s_cgif(t,k){if(t){var te=3Dt.indexOf('=3D'),
sk=3Dte<0?t:t.substring(0,te),sv=3Dte<0?'True':t.substring(te+1);if(
sk=3D=3Dk)return s_epa(sv)}return ''}
/* Macro based on getCGI and getValue
*/
function s_vp_getCGIValue(vs,k) {
s_vp_getCGI(vs,k);
return s_vp_getValue(vs);
}
/*
* Plugin: Set variable to value only once per time priod:
* (Min, Hour, Day, Month, Year)
* in the specified timezone (hour offset from GMT)
*/
function s_vp_setOncePer(vs,v,period,tzOffs)
{if(v){var n=3Ds_dt(tzOffs,0),t,st=3Ds_vh_gt(vs,v);st=3Dst?st:0;if(
!s_vh_s(vs,v))v=3D'';else if(st){t=3Ds_dt(tzOffs,st);var min=3D(
=
n.getMinutes()=3D=3Dt.getMinutes()),hour=3D(n.getHours()=3D=3Dt.getHours(=
)
=
),day=3D(n.getDate()=3D=3Dt.getDate()),mon=3D(n.getMonth()=3D=3Dt.getMont=
h()
=
),year=3D(n.getYear()=3D=3Dt.getYear());if(period=3D=3D'Ever'||(year&&((
=
period=3D=3D'Year')||(mon&&((period=3D=3D'Month')||(day&&((period=3D=3D'D=
ay'
=
)||(hour&&((period=3D=3D'Hour')||(min&&period=3D=3D'Min')))))))))){v=3D''=
}}
}s_vpr(vs,v)}
/*
* Plugin: MTX Message Tracking Plug-in
* Pull mtxs,mtxb,mtxl, and mtxc query string parameters from the URL =
and=20
* place the contactenated values in s_prop11. No values returned. =
Depends on
* SiteCatalyst getCGI values
*/
var s_prop11,s_eVar19,s_eVar20;
function s_hp_captureMTXClicks() {
hp_date =3D new Date();
t_date =3D (hp_date.getYear()+1900)*10000 + (hp_date.getMonth()+1)*100 =
+ hp_date.getDate();
t_variable0=3Ds_wd.location.href;
s_vp_getCGI('t_variable1','mtxs');mtxs=3Ds_vp_getValue("t_variable1");
s_vp_getCGI('t_variable2','mtxb');mtxb=3Ds_vp_getValue("t_variable2");
s_vp_getCGI('t_variable3','mtxl');mtxl=3Ds_vp_getValue("t_variable3")
s_vp_getCGI('t_variable4','mtxc');mtxc=3Ds_vp_getValue("t_variable4")
s_vp_getCGI('t_variable5','mtxe');mtxe=3Ds_vp_getValue("t_variable5")
if(mtxc.length>0) {mtxc+=3D "/";}
else {mtxc=3D""}
if(( mtxe <=3D 0 || (mtxe>0 && mtxe>t_date)) && =
(mtxs.length>0||mtxb.length>0||mtxl.length>0 && !(window.s_prop11 && =
s_prop11.length>0)) ){
=
s_prop11=3Dmtxc+s_vp_getValue("t_variable1")+'|'+s_vp_getValue("t_variabl=
e2")+'|'+s_vp_getValue("t_variable3")+'|'+t_variable0;
s_eVar19 =3D s_prop11
s_eVar20 =3D s_prop11
} =20
}
/*
* Plugin: eCommerce / JumpID Tracking Plug-in
* Capture the jumpID / eVar settings in s_prop2, s_prop4, and =
s_eVar15-20
* prop2 contains just the jumpid, prop4 contains the jumpid path,
* Depends on s_vp_getCGI
*/
var =
s_prop2,s_prop4,s_eVar15,s_eVar16,s_eVar17,s_eVar18,s_eVar19,s_eVar20;
function s_hp_jumpIdProcessing() {
s_vp_getCGI('t_variable1','jumpid');
s_prop2=3Ds_vp_getValue("t_variable1").toLowerCase();
if(s_prop2 && s_prop2.length>0) {
s_eVar20 =3D s_prop2;
s_prop4 =3D s_prop2 + "|" + =
window.location.href.toLowerCase().substring(0,100);
s_jumpIdType =3D s_prop2.substring(0,3);
if (s_jumpIdType.indexOf('ex_') > -1){ =20
s_eVar15 =3D s_eVar20;
}else if (s_jumpIdType.indexOf('in_') > -1){
s_eVar16 =3D s_eVar20;
}else if (s_jumpIdType.indexOf('em_') > -1){
s_eVar17 =3D s_eVar20;
}else if (s_jumpIdType.indexOf('re_') > -1){
s_eVar18 =3D s_eVar20;
}else{
s_eVar19 =3D s_eVar20;
}=20
}
}
/*
* Plugin: Fix product String
* Strips out non-numeric values from quantity and price sections of=20
* s_products string. The enforceValidAlphaProductString flag will
* turn on additional filtering that will remove non-alpha characters
* from the remainder of the s_products string.
*/
function s_hp_fixProductString() {
s_hp_enforceValidAlphaProductString =3D false;
if(window.s_products && s_products.length>0) { // If s_products exists
var h_prdarray1 =3D window.s_products.split(",");
var i,j,k;
for(i=3D0;i<h_prdarray1.length;i++) {
h_prdarray2 =3D h_prdarray1[i].split(";");
for(j=3D0;j<h_prdarray2.length;j++) { =09
if(s_hp_enforceValidAlphaProductString && (j=3D=3D0||j=3D=3D1)) { // =
First and Second: Strip out non alpha chars
h_newValue=3D"";
for(k=3D0;k<h_prdarray2[j].length;k++) {
if(h_isValidAlphaNumeric(h_prdarray2[j].substring(k,k+1)))
h_newValue +=3D h_prdarray2[j].substring(k,k+1);
}
h_prdarray2[j]=3Dh_newValue;
}
if(j=3D=3D2 || j =3D=3D 3) { // First and Second: Strip out non =
alpha chars
h_newValue=3D"";
for(k=3D0;k<h_prdarray2[j].length;k++) {
if(h_isNumeric(h_prdarray2[j].substring(k,k+1)))
h_newValue +=3D h_prdarray2[j].substring(k,k+1);
}
h_prdarray2[j]=3Dh_newValue; =09
}
}
h_prdarray1[i]=3Dh_prdarray2.join(";")
}
window.s_products =3D h_prdarray1.join(",")
}
}
function h_isNumeric(test) { var valid =3D "0123456789."; =
if(valid.indexOf(test)!=3D -1) return true;
return false; }
function h_isValidAlphaNumeric(test) {=20
var valid =3D "abcdefghijklmnopqrstuvwxyz =
_-+=3D{}[]|\/?:;\"'<>,.~`!@#$%^&*()";
if(h_isNumeric(test) || !(valid.indexOf(test)=3D=3D-1 &&=20
valid.toUpperCase().indexOf(test)=3D=3D-1)) return true;
return false; }
/*
* Plugin: Remove Report Suite Name from Account List
* Removes a report suite ID from the s_account variable list. This =
ensures that certain
* deprecated report suite IDs will be removed from SiteCatalyst-enabled =
pages
*/
function s_hp_removeRSName(acct_to_remove) {
acct_to_remove=3Dacct_to_remove.toLowerCase();
s_account =3D s_account.toLowerCase();
if(window.s_account && s_account.indexOf(acct_to_remove)!=3D -1) {
var s_hp_tmpa =3D s_account.split(",");s_hp_new_acct=3D"";
for(i=3D0;i<s_hp_tmpa.length;i++) {
if(s_hp_tmpa[i].indexOf(acct_to_remove)=3D=3D -1) =
s_hp_new_acct+=3Ds_hp_tmpa[i] + ",";
}
s_account =3D s_hp_new_acct.substring(0,s_hp_new_acct.length-1);
}
}
/* MetaTag code, V2.0 */
function s_hp_scrapeMetaTags() {
if (document.getElementsByTagName){
t_lang =3D window.document.documentElement.lang
if(!(window.s_prop8 && s_prop8.length>0)) eval("s_prop8=3D\"" + t_lang =
+ "\"")
var allMyStuff=3Ddocument.getElementsByTagName("META");
var myMeta;var myVariableNames;
var myVariableMap =3D new Array();
if(!(window.s_prop7 && s_prop7.length>0)) =
myVariableMap["target_country"] =3D "s_prop7";=20
if(!(window.s_prop9 && s_prop9.length>0)) myVariableMap["segment"] =3D =
"s_prop9";
for (var i=3D0; i<allMyStuff.length; i++){
if (allMyStuff[i].tagName =3D=3D "META"){
myMeta =3D allMyStuff[i];
if (myVariableMap[myMeta.name] !=3D null){
eval(myVariableMap[myMeta.name] + " =3D'"+ =
myMeta.content.toLowerCase().split("'").join("") +"'");
}
else{
myContent =3D myMeta.content.toLowerCase();
if(myContent.indexOf("charset")!=3D -1 && !(window.s_charSet && =
s_charSet.lenght>0)) {
myCharSetArray =3D myContent.split("rset=3D");
eval("s_charSet=3D\"" + myCharSetArray[1].toUpperCase()+"\"");
} else {
eval("s_" + myMeta.name + " =3D '"+ myContent.split("'").join("") =
+"'");
}
}
}
}
}
eval("if(!(window.s_prop7 && s_prop7.length>0)) s_prop7=3D\"undef\";")
eval("if(!(window.s_prop8 && s_prop8.length>0)) s_prop8=3D\"undef\";")
eval("if(!(window.s_prop9 && s_prop9.length>0)) s_prop9=3D\"undef\";")
} // End function
/*
* Plugin Utilities v2.0 (Required For All Plugins)
*/
function s_vpr(vs,v){if(s_wd[vs])s_wd[vs]=3Ds_wd[vs];else s_wd[vs]=3D''
if(vs.substring(0,2) =3D=3D =
's_')vs=3Dvs.substring(2);s_wd['s_vpv_'+vs]=3Dv
s_wd['s_vpm_'+vs]=3D1}function s_dt(tz,t){var d=3Dnew =
Date;if(t)d.setTime(
t);d=3Dnew Date(d.getTime()+(d.getTimezoneOffset()*60*1000))
return new Date(Math.floor(d.getTime()+(tz*60*60*1000)))}
function s_vh_gt(k,v){var =
vh=3D'|'+s_c_r('s_vh_'+k),vi=3Dvh.indexOf('|'+v
+'=3D'),ti=3Dvi<0?vi:vi+2+v.length,pi=3Dvh.indexOf('|',ti),t=3Dti<0?'':
vh.substring(ti,pi<0?vh.length:pi);return t}function s_vh_gl(k){var
vh=3Ds_c_r('s_vh_'+k),e=3Dvh?vh.indexOf('=3D'):0;return =
vh?(vh.substring(0,
e?e:vh.length)):''}function s_vh_s(k,v){if(k&&v){var e=3Dnew Date,st=3D
e.getTime(),y=3De.getYear(),c=3D's_vh_'+k,vh=3D'|'+s_c_r(c)+'|',t=3Ds_vh_=
gt(k,
v);e.setYear((y<1900?y+1900:y)+5);if(t)vh=3Ds_rep(vh,'|'+v+'=3D'+t+'|','|=
'
);if(vh.substring(0,1)=3D=3D'|')vh=3Dvh.substring(1);if(vh.substring(
vh.length-1,vh.length)=3D=3D'|')vh=3Dvh.substring(0,vh.length-1);vh=3Dv
+'=3D[PCC]'+(vh?'|'+vh:'');s_c_w(c,vh,e);if(s_vh_gt(k,v)!=3D'[PCC]')
return 0;vh=3Ds_rep(vh,'[PCC]',st);s_c_w(c,vh,e)}return 1}
/************* HP FORBIDDEN SECTION - DO NOT ALTER ANYTHING BELOW THIS =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -