nv-buf-big-slab 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,24 @@
1
+ var nvbufbigslab=(()=>{var R=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports);var Ut=R((ce,Rt)=>{var mr=(t,r)=>{var a=t.prototype;for(var _ in r)Object.defineProperty(a,_,{get:r[_]});var e=Object.getOwnPropertySymbols(r);for(var n of e)Object.defineProperty(a,n,{get:r[n]})},zr=(t,r)=>{var a=t.prototype;for(var _ in r)a[_]=r[_];var e=Object.getOwnPropertySymbols(r);for(var n of e)a[n]=r[n]},Rr=(t,r)=>{var a=t.prototype;for(var _ in r)Object.defineProperty(a,_,{get:r[_][0],set:r[_][1]});var e=Object.getOwnPropertySymbols(r);for(var n of e)Object.defineProperty(a,n,{get:r[n][0],set:r[n][1]})},Ur=(t,r=" ")=>{Object.defineProperty(t,"name",{value:r})},Dr=(t,r,a,_=!1,e=!0,n=!0)=>{Object.defineProperty(t,r,{value:a,enumerable:_,writable:e,configurable:n})},Nr=(t,r,a=!1,_=!0,e=!0)=>{for(let s in r){var n=r[s];Object.defineProperty(t,s,{value:n,enumerable:a,writable:_,configurable:e})}};Rt.exports={add_getters:mr,add_mthds:zr,add_accessors:Rr,rename:Ur,def_prop:Dr,def_ps:Nr}});var Nt=R((ue,Dt)=>{var Tt=(t,r,a)=>{if(r<a){for(let _=0;_<t.length;++_){let e=t[_];Array.isArray(e)?Tt(e,r+1,a):e===null||typeof e=="object"&&vt(e,r+1,a)}Object.freeze(t)}},vt=(t,r,a)=>{if(r<a){for(let _ in t){let e=t[_];Array.isArray(e)?Tt(e,r+1,a):e===null||typeof e=="object"&&vt(e,r+1,a)}Object.freeze(t)}};Dt.exports=(t,r=1/0)=>(Array.isArray(t)?Tt(t,0,r):t===null||typeof t=="object"&&vt(t,0,r),t)});var W=R((be,qt)=>{var Pr=t=>{if(ArrayBuffer.isView(t))return"abvw";if(globalThis.Buffer&&t.constructor.name==="Buffer")return"buf";if(globalThis.Blob&&t.constructor.name==="Blob")return"blob";if(globalThis.File&&t.constructor.name==="File")return"file";var r=toString.call(t);return r==="[object ArrayBuffer]"||r==="[object SharedArrayBuffer]"?"ablike":"other"},Pt=t=>t===Int8Array||t===Int16Array||t===Int32Array||t===BigInt64Array,Or=t=>t===Uint8Array||t===Uint8ClampedArray||t===Uint16Array||t===Uint32Array||t===BigUint64Array;function Mr(t){let r=t.BYTES_PER_ELEMENT,a;return r===1?a="Tiny":r===2?a="Small":r===4?a="Normal":a="Large",Pt(t)?`Half${a}`:a}var Ot={0:Uint8Array,1:Uint16Array,2:Uint32Array,3:BigUint64Array,4:Int8Array,5:Int16Array,6:Int32Array,7:BigInt64Array,255:Float64Array},Mt=new Map([[Uint8Array,0],[Uint16Array,1],[Uint32Array,2],[BigUint64Array,3],[Int8Array,4],[Int16Array,5],[Int32Array,6],[BigInt64Array,7],[Float64Array,255]]),Et=[ArrayBuffer];globalThis.SharedArrayBuffer!==void 0&&Et.push(globalThis.SharedArrayBuffer);var st=[Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,BigUint64Array,Int8Array,Int16Array,Int32Array,BigInt64Array,Float32Array,Float64Array];globalThis.Float16Array!==void 0&&st.push(globalThis.Float16Array);var J=[DataView];globalThis.Buffer!==void 0&&J.push(globalThis.Buffer);globalThis.Blob!==void 0&&J.push(globalThis.Blob);globalThis.File!==void 0&&J.push(globalThis.File);var Fr=[...Et,...st,...J],u=new Map;u.set("u8a",Uint8Array);u.set("u8ca",Uint8ClampedArray);u.set("u16a",Uint16Array);u.set("u32a",Uint16Array);u.set("u64a",BigUint64Array);u.set("i8a",Int8Array);u.set("i16a",Int16Array);u.set("i32a",Int32Array);u.set("i64a",BigInt64Array);u.set("f32a",Float32Array);u.set("f64a",Float64Array);u.set("dv",DataView);u.set("ab",ArrayBuffer);u.set(Uint8Array,"u8a");u.set(Uint8ClampedArray,"u8ca");u.set(Uint16Array,"u16a");u.set(Uint32Array,"u32a");u.set(BigUint64Array,"u64a");u.set(Int8Array,"i8a");u.set(Int16Array,"i16a");u.set(Int32Array,"i32a");u.set(BigInt64Array,"i64a");u.set(Float32Array,"f32a");u.set(Float64Array,"f64a");u.set(DataView,"dv");u.set(ArrayBuffer,"ab");globalThis.Float16Array!==void 0&&(u.set("f16a",globalThis.Float16Array),u.set(globalThis.Float16Array,"f16a"));globalThis.Buffer!==void 0&&(u.set("buf",globalThis.Buffer),u.set(globalThis.Buffer,"buf"));globalThis.Blob!==void 0&&(u.set("blob",globalThis.Blob),u.set(globalThis.Blob,"blob"));globalThis.File!==void 0&&(u.set("file",globalThis.File),u.set(globalThis.File,"file"));globalThis.SharedArrayBuffer!==void 0&&(u.set("sab",globalThis.SharedArrayBuffer),u.set(globalThis.SharedArrayBuffer,"sab"));function Ft(t){return u.get(t)}function Yt(t){return u.get(t.toLowerCase())}function Yr(t,r){return t<r?[!1,`size(${t}) MUST >= algnsz(${r})`]:t%r!==0?[!1,`size(${t}) % algnsz(${r}) = ${t%r} MUST == 0`]:[!0,null]}function Cr(t,r){var a=t%r;return a===0?t:t+r-a}function Ct(t,r){var a=t%r;return a===0?0:r-a}function Hr(t,r){return t%r}function Ht(t,r,a,_){a=a??0,_=_??r.byteLength;var e=a,n=a+_,s=t.BYTES_PER_ELEMENT,i=Ct(e,s),l=new Uint8Array(r,e,i);l.T="head",_-=i;var o=e+i,c=n%s,f=n-c,p=new Uint8Array(r,f,c);p.T="tail",_-=c;var d=_/s;return[l,new t(r,o,d),p]}function $r(t){var r=t.buffer,a=t.byteOffset,_=t.byteLength,e={};for(var n of st){var s=Ft(n);e[s]=Ht(n,r,a,_)}return e}function $t(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function Xr(t){return $t(t).slice(0)}function jr(t,r){return t===Float64Array?Number.MAX_SAFE_INTEGER-r:t===BigUint64Array?2n**(8n*BigInt(t.BYTES_PER_ELEMENT))-1n-BigInt(r):t===Int8Array?127-r:t===Int16Array?32767-r:t===Int32Array?2147483647-r:2**(8*t.BYTES_PER_ELEMENT)-1-r}function kr(t,r=!1){return t=BigInt(t),t<=127n?Int8Array:t<=255n?Uint8Array:t<=32767n?Int16Array:t<=65535n?Uint16Array:t<=2147483647n?Int32Array:t<=2n**32n-1n?Uint32Array:t<=2n**53n-1n?r?BigUint64Array:Float64Array:BigUint64Array}function qr(t){return Mt.get(t)}function Zr(t){return Ot[t]??Float64Array}function Xt(t){return Mt.get(t)}function Vr(t){return Ot[t]??Float64Array}function Gr(t){var r=new Uint8Array(t.buffer,t.byteOffset,1);r[0]=Xt(t.constructor)}function Kr(t,r,a){var _=new Uint8Array(t.buffer,t.byteOffset,r+1);_[r]=a}function Jr(t,r){var a=new Uint8Array(t.buffer,t.byteOffset,r+1);return a[r]}function Wr(t){var _;var r=t.constructor;if(r===DataView){var a=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);return new r(a)}else return r===globalThis.Buffer?(_=globalThis==null?void 0:globalThis.Buffer)==null?void 0:_.from(t):t.slice(0)}function Qr(t,r){var a=t.byteLength,_=r.byteLength,e=a>_?_:a,n=new Uint8Array(t.buffer,t.byteOffset,e),s=new Uint8Array(r.buffer,r.byteOffset,e);s.set(n)}function ra(t,r,a){t.constructor.BYTES_PER_ELEMENT===8&&t.constructor!==Float64Array?t[r]=BigInt(a):t[r]=a}function aa(t){return globalThis.Blob!==void 0&&t.constructor===globalThis.Blob||globalThis.File!==void 0&&t.constructor===globalThis.File}var jt=t=>toString.call(t)==="[object ArrayBuffer]"||toString.call(t)==="[object sharedArrayBuffer]",_a=(t,r,a,_=0)=>{var e=t.BYTES_PER_ELEMENT;if(_%e===0){var n=a.byteLength-_,s=e*r;if(n>=s){var i=new t(a,_,r);return[!0,ta]}else return[!1,`ab.byteLength(${a.byteLength}) - offset(${_}) MUST >= requested_bytsz(${s})`]}else return[!1,`offset(${_}) % algnsz(${e}) MUST === 0`]},kt=(t,r,a,_)=>!(r<=a||_<=t),wt=(t,r)=>{var[a,_,e]=t,[n,s,i]=r;return a===n?kt(_,e,s,i):!1},nt=t=>[t.buffer,t.byteOffset,t.byteOffset+t.byteLength],ea=(t,r)=>wt(nt(t),nt(r)),gt=t=>Array.isArray(t)?t:nt(t),na=(t,r)=>wt(gt(t),gt(r)),it=new Map([[Uint8ClampedArray,{r:"ru8ca",w:"wu8ca","?":!1}],[Uint8Array,{r:"ru8a",w:"wu8a","?":!1}],[Int8Array,{r:"ri8a",w:"wi8a","?":!1}],[Uint16Array,{r:"ru16a",w:"wu16a","?":!1}],[Int16Array,{r:"ri16a",w:"wi16a","?":!1}],[Uint32Array,{r:"ru32a",w:"wu32a","?":!1}],[Int32Array,{r:"ri32a",w:"wi32a","?":!1}],[BigUint64Array,{r:"ru64a",w:"wu64a","?":!1}],[BigInt64Array,{r:"ri64a",w:"wi64a","?":!1}],[Float32Array,{r:"rf32a",w:"wf32a","?":!0}],[Float64Array,{r:"rf64a",w:"wf64a","?":!0}],[DataView,{r:"rdv",w:"wdv","?":!1}]]);globalThis.Float16Array!==void 0&&it.set(globalThis.Float16Array,{r:"rf16a",w:"wf16a","?":!0});var sa=t=>it.get(t),H=new Map(Array.from(it.entries()));H.set(ArrayBuffer,{r:"ro",w:"wo","?":!1});globalThis.SharedArrayBuffer!==void 0&&H.set(globalThis.SharedArrayBuffer,{r:"ro",w:"wo","?":!1});globalThis.Buffer!==void 0&&H.set(globalThis.Buffer,{r:"rbuf",w:"wbuf","?":!0});globalThis.Blob!==void 0&&H.set(globalThis.Blob,{r:"rblob",w:"wblob","?":!0,rtrn_prms:!0});globalThis.File!==void 0&&H.set(globalThis.File,{r:"rfile",w:"wfile","?":!0,rtrn_prms:!0});var ia=t=>H.get(t),la={Uint8Array:"u8a",Uint8ClampedArray:"u8ca",Int8Array:"i8a",Uint16Array:"u16a",Int16Array:"i16a",Uint32Array:"u32a",Int32Array:"i32a",BigUint64Array:"u64a",BigInt64Array:"i64a",Float16Array:"f16a",Float32Array:"f32a",Float64Array:"f64a",DataView:"dv"},oa=t=>la[t],fa=t=>Yt(t).name,Lt={u8:Uint8Array,i8:Int8Array,u16:Uint16Array,i16:Int16Array,u32:Uint32Array,i32:Int32Array,u64:BigUint64Array,i64:BigInt64Array,f32:Float32Array,f64:Float64Array};globalThis.Float16Array&&(Lt.f16=globalThis.Float16Array);var ca=(()=>{var t=new Map;for(let[r,a]of Object.entries(Lt))t.set(a,r);return t})(),ua=t=>Lt[t],ba=t=>ca.get(t),da=(...t)=>{let r=t[0];for(let a=1;a<t.length;a++){let _=t[a];_.BYTES_PER_ELEMENT>r.BYTES_PER_ELEMENT&&(r=_)}return r},ya=(...t)=>{let r=t[0];for(let a=1;a<t.length;a++){let _=t[a];_.BYTES_PER_ELEMENT<r.BYTES_PER_ELEMENT&&(r=_)}return r},pa=(t,r,a,_=!0)=>{if(r===Uint8Array)return t.getUint8(a);if(r===Int8Array)return t.getInt8(a);if(r===Uint16Array)return t.getUint16(a,_);if(r===Int16Array)return t.getInt16(a,_);if(r===Uint32Array)return t.getUint32(a,_);if(r===Int32Array)return t.getInt32(a,_);if(r===Float32Array)return t.getFloat32(a,_);if(r===Float64Array)return t.getFloat64(a,_);if(r===BigUint64Array)return t.getBigUint64(a,_);if(r===BigInt64Array)return t.getBigInt64(a,_);if(globalThis.Float16Array&&r===Float16Array){let e=t.getUint16(a,_);return f16_to_f32(e)}else throw new Error("Unsupported TypedArray class")},ha=(t,r,a,_,e=!0)=>{if(r===Uint8Array)t.setUint8(a,_);else if(r===Int8Array)t.setInt8(a,_);else if(r===Uint16Array)t.setUint16(a,_,e);else if(r===Int16Array)t.setInt16(a,_,e);else if(r===Uint32Array)t.setUint32(a,_,e);else if(r===Int32Array)t.setInt32(a,_,e);else if(r===Float32Array)t.setFloat32(a,_,e);else if(r===Float64Array)t.setFloat64(a,_,e);else if(r===BigUint64Array)t.setBigUint64(a,_,e);else if(r===BigInt64Array)t.setBigInt64(a,_,e);else if(globalThis.Float16Array&&r===Float16Array){let n=f32_to_f16(_);t.setUint16(a,n,e)}else throw new Error("Unsupported TypedArray class")},Aa=t=>t==null?{src:null,offset:0}:jt(t)?{src:t,offset:0}:{src:t.src??null,offset:t.offset??0},Ta=t=>t===null||t===!0||t===void 0||t!=null&&t.inline?{ptr:void 0,inline:!0}:typeof t=="number"||typeof t=="bigint"?{ptr:parseInt(Number(t)),inline:!1}:{ptr:parseInt(Number(t.ptr??0)),inline:!!t.inline};qt.exports={tcate:Pr,is_signed_int_cls:Pt,is_unsigned_int_cls:Or,check_sz_and_algn:Yr,calc_algn_si:Cr,calc_prepad_sz:Ct,calc_pstpad_sz:Hr,calc_max_incr_cnt:jr,get_ta_cls_with_max_cnt:kr,get_byt_from_cls:qr,get_cls_from_byt:Zr,get_cls_from_dump_fst_byte:Vr,get_fst_byte_for_dump:Xt,set_fst_byte_for_dump:Gr,set_nth_byte:Kr,get_nth_byte:Jr,to_u8avw:$t,cp_rtrn_u8a:Xr,creat_one_debug_view_on_ab:Ht,creat_debug_view:$r,BRIEF_MIRR:u,get_display_name_prefix:Mr,get_brief_name:Ft,get_cls_from_brief_name:Yt,AB_CLSES:Et,TA_CLSES:st,VWLIKE_CLSES:J,BUFLIKE_CLSES:Fr,cp:Wr,write_into:Qr,setv:ra,is_readonly:aa,is_ablike:jt,creat_on_ab:_a,is_rng_overlaped:kt,is_ab_rng_overlaped:wt,ta2abrng:nt,is_ta_overlaped:ea,to_abrng:gt,is_overlaped:na,TACLS_TO_MTHD_HINT:it,TACLS_OR_ABCLS_TO_MTHD_HINT:H,tacls_to_mthd_hint:sa,tacls_or_abcls_to_mthd_hint:ia,taclsnm_to_tbrief:oa,tbrief_to_taclsnm:fa,ele_tbrief_to_tacls:ua,tacls_to_ele_tbrief:ba,min_tacls:ya,max_tacls:da,read_dv_with_cls:pa,write_dv_with_cls:ha,fmt_underlying:Aa,fmt_data:Ta}});var Vt=R((de,Zt)=>{Zt.exports=t=>{if(typeof t=="number"){if(!Number.isFinite(t)||t<=0)throw new Error(`invalid number(${t}), MUST > 0`);return Math.floor(t)}if(typeof t!="string")throw new Error("nm MUST be number | string");if(t=t.trim().toLowerCase(),t.length===0)throw new Error("empty nm");let r=0,a=t.length,_=r;for(;r<a;){let i=t.charCodeAt(r);if(i>=48&&i<=57)r++;else break}if(r===_)throw new Error(`invalid nm(${t})`);let e=Number(t.slice(_,r)),n;if(t[r]==="*"&&t[r+1]==="*"){r+=2;let i=r;for(;r<a;){let o=t.charCodeAt(r);if(o>=48&&o<=57)r++;else break}if(r===i)throw new Error(`invalid exponent in nm(${t})`);let l=Number(t.slice(i,r));n=e**l}else n=e;if(n<=0||!Number.isFinite(n))throw new Error(`invalid nm(${t}), MUST > 0`);let s=t.slice(r);switch(s){case"":case"b":return n;case"k":return n*1024;case"m":return n*1024**2;case"g":return n*1024**3;default:throw new Error(`unknown unit(${s}) in nm(${t})`)}}});var $=R((ye,St)=>{var va=()=>({1:{mx_cnt:1024},2:{mx_cnt:1024},4:{mx_cnt:2048},6:{mx_cnt:2048},8:{mx_cnt:1048576},12:{mx_cnt:1048576},16:{mx_cnt:4194304},20:{mx_cnt:4194304},24:{mx_cnt:8388608},28:{mx_cnt:8388608},32:{mx_cnt:16777216},40:{mx_cnt:16777216},48:{mx_cnt:16777216},56:{mx_cnt:16777216},64:{mx_cnt:16777216},128:{mx_cnt:4194304},256:{mx_cnt:4194304},512:{mx_cnt:1048576},"1k":{mx_cnt:1048576},"2k":{mx_cnt:1048576},"4k":{mx_cnt:1048576},"8k":{mx_cnt:131072},"16k":{mx_cnt:65536},"32k":{mx_cnt:32768},"64k":{mx_cnt:8192},"128k":{mx_cnt:4096},"256k":{mx_cnt:2048},"512k":{mx_cnt:2048},"1m":{mx_cnt:1024},"2m":{mx_cnt:1024}});St.exports={LOAD_HINT_SZ:2,LOAD_HINT_CLS_BYT_IDX:0,LOAD_HINT_PRE_PAD_SZ_IDX:1,CTRL_HEAD_CNT:1,SLAB_ARY_LEN_IDX:0,SLAB_STRIDE_V:6,slab_ctrl_bits_start_idx:0,slab_mx_cnt_idx:1,slab_used_cnt_idx:2,slab_cursor_idx:3,slab_sz_idx:4,slab_algn_idx:5,PTR_HEAD_CNT:1,DATA_PTR_IDX:0,DATA_LOAD_HINT_SZ:8,DFLT_CFG:va};St.exports.HELP=`
2
+ =================================================================================================
3
+ ctrl-ta-cls-byte 1B | pad-bfr-ctrl-ta-sz 1B | ?pad-bfr-ctrl(pad-bfr-ctrl-ta-sz) |
4
+ --------------------------------------------------------------------------------
5
+ pool_cnt |
6
+ ctrl_bits_start | mx_cnt | used_cn| cursor | slab_sz | slab_algn |
7
+ .....................................................................
8
+ ctrl_bits_start | mx_cnt | used_cn| cursor | slab_sz | slab_algn |
9
+ ctrl_bits |
10
+ ...........
11
+ ctrl_bits |
12
+ --------------------------------------------------------------------------------
13
+ ptr-ta-cls-byte 1B | pad-bfr-ptr-ta-sz 1B | ?pad-bfr-ptr(pad-bfr-ptr-ta-sz) |
14
+ //-----------------------------------------------------------------------
15
+ ptr | \u3010data_ptr base\u3011
16
+ data_si |
17
+ ........
18
+ data_si |
19
+ -------------------------------------------------------------------------
20
+ data_sz:56 | data_algn:4; | pad_bfr_data_sz:4 \u975E\u5BF9\u9F50 BigInt64 \u8D1F\u6570\u8868\u793A\u975Einline \u6574\u6570\u8868\u793Ainline
21
+ // ? pad_bfr_data
22
+ [....bytes.....]
23
+ ==================================================================================================
24
+ `});var Z=R((ve,_r)=>{var Kt=Vt(),{calc_prepad_sz:Q,calc_pstpad_sz:pe,get_ta_cls_with_max_cnt:lt,max_tacls:Jt}=W(),{LOAD_HINT_SZ:ot,LOAD_HINT_CLS_BYT_IDX:he,LOAD_HINT_PRE_PAD_SZ_IDX:Ae,CTRL_HEAD_CNT:P,SLAB_ARY_LEN_IDX:q,SLAB_STRIDE_V:h,slab_ctrl_bits_start_idx:tt,slab_mx_cnt_idx:O,slab_used_cnt_idx:N,slab_cursor_idx:F,slab_sz_idx:X,slab_algn_idx:rt,PTR_HEAD_CNT:at,DATA_PTR_IDX:Te,DATA_LOAD_HINT_SZ:Gt}=$(),Bt=(t,r=Uint32Array)=>{var a=8*r.BYTES_PER_ELEMENT,_,e=t%a;return e==0?_=t/a:_=(t-e)/a+1,r.BYTES_PER_ELEMENT*_},Wt=t=>t===1||t===2||t===4||t===8||t===16,Qt=t=>{var r=[];for(let _ in t){var a=t[_];_=Kt(_),slab_algn=a.slab_algn??1,r.push({slab_sz:_,slab_algn,mx_cnt:a.mx_cnt??4096})}return r},tr=t=>(t.sort((r,a)=>{let _=r.slab_sz-a.slab_sz;return _!==0?_:r.slab_algn-a.slab_algn}),t),rr=t=>{let r=t.length;if(r===0)return[];let a=[],_=t[0],e=_.mx_cnt;for(let n=1;n<r;n++){let s=t[n];s.slab_sz===_.slab_sz&&s.slab_algn===_.slab_algn?e+=s.mx_cnt:(a.push({slab_sz:_.slab_sz,slab_algn:_.slab_algn,mx_cnt:e}),_=s,e=s.mx_cnt)}return a.push({slab_sz:_.slab_sz,slab_algn:_.slab_algn,mx_cnt:e}),a},ga=(t,r)=>{var a=r,_=t.length;for(let n=0;n<_;++n){let{slab_sz:s,slab_algn:i,mx_cnt:l}=t[n];var e=Q(a,i);a+=e,t[n].data_si=a,a+=s*l}},ar=(t,r)=>{let a=t.length;if(a>=2**32)throw new Error(`slab_ary.length(${t.length}) MUST < 2**32`);var _=r.ptr,e=r.inline,n=_,s=0,i=[],l=1,o=1,c=1;for(let m=0;m<a;++m){let{slab_sz:A,slab_algn:E,mx_cnt:z}=t[m];{if(E=E??1,A=A??E,z=z??4096,!Wt(E))throw new Error(`slab_algn(${E}) can ONLY be 1 | 2| 4 |8 |16`);if(A<=0)throw new Error(`slab_sz(${A}) MUST >0`);if(A<E)throw new Error(`slab_sz(${A}) MUST >= slab_algn(${E})`);if(A%E!==0)throw new Error(`slab_sz(${A}) % slab_algn(${E}) MUST === 0`);if(A>=2**32)throw new Error(`slab_sz(${A}) MUST < 2**32`);if(z>=2**32)throw new Error(`mx_cnt(${z}) MUST < 2**32`)}var f=Q(n,E);n+=f,i.push({mx_cnt:z,slab_sz:A,slab_algn:E,data_si:n}),A>l&&(l=A),z>c&&(c=z),E>o&&(o=E),s+=z,n+=A*z}let p=n-_;if(n>=2**53)throw new Error(`total_sz_after_aligned(${p}) MUST < (2**53-data_ptr(${_}))`);let d=lt(n),T=Jt(lt(a),lt(l),lt(c));var y=P+h*a,b=y-P;for(let m of i){let{mx_cnt:A,slab_sz:E,slab_algn:z}=m,Ir=Bt(A,T)/T.BYTES_PER_ELEMENT;m.ctrl_bits_start=b,b+=Ir}if(b>=2**(8*T.BYTES_PER_ELEMENT))throw new Error(`slab_ary.length(${a}) TOO large`);let g=T.BYTES_PER_ELEMENT;var v=ot;let B=Q(v,g);v+=B;let L=T.BYTES_PER_ELEMENT*(P+b);v+=L,v+=ot;let S=d.BYTES_PER_ELEMENT,x=Q(v,S);v+=x;let I=d.BYTES_PER_ELEMENT*(at+a);v+=I,v+=Gt;let C=ot+B+L+ot+x+I+Gt,et=Math.max(g,S),D=Q(v,o);v+=D;let k={slab_ary:i,CTRL_TACLS:T,pad_bfr_ctrl_sz:B,ctrl_sz:L,ctrl_algn:g,PTR_TACLS:d,pad_bfr_ptr_sz:x,ptr_sz:I,ptr_algn:S,cpsz:C,cpalgn:et,data_ptr:_,data_inline:e,data_sz:p,data_algn:o,data_cnt:s,pad_bfr_data_sz:D};{let m=Math.max(et,o);k.data_relative_offset=C+D;let A=C+D+p;k.cpdalgn=m,k.cpdsz=A,v+=p}return k},Ea=(t,r)=>{var a=Array.isArray(t)?t:Qt(t);return a=tr(a),a=rr(a),ar(a,r)},wa=(t,r)=>{var n=[],a=t[q],_=t.subarray(P),e=r.subarray(at),n=[];for(let d=0;d<a;++d){var s=_[h*d+tt],i=_[h*d+O],l=_[h*d+N],o=_[h*d+F],c=_[h*d+X],f=_[h*d+rt],p=e[d];n.push({ctrl_bits_start:s,mx_cnt:i,used_cnt:l,unused_cnt:i-l,slab_sz:c,slab_algn:f,data_si:p,data_ei:p+c*i})}return n},La=(t,r,a)=>{var _=t[q],e=t.subarray(P),n=r.subarray(at),s=a;{var i=e[h*s+tt],l=e[h*s+O],o=e[h*s+N],c=e[h*s+F],f=e[h*s+X],p=e[h*s+rt],d=n[s];return{ctrl_bits_start:i,mx_cnt:l,used_cnt:o,unused_cnt:l-o,slab_sz:f,slab_algn:p,data_si:d,data_ei:d+f*l}}},xt=(t,r)=>{var a=t.constructor,_=h*r,e=t[_+tt],n=t[_+O],s=Bt(n,a),i=s/a.BYTES_PER_ELEMENT;return t.subarray(e,e+i)},Sa=(t,r,a=_=>!0)=>{var _=[],e=t[q],n=t.subarray(P),s=r.subarray(at);for(let y=0;y<e;++y){var i=xt(n,y),l=n[h*y+O],o=n[h*y+N],c=n[h*y+F],f=n[h*y+X],p=n[h*y+rt],d=s[y],T={mx_cnt:l,used_cnt:o,unused_cnt:l-o,slab_sz:f,slab_algn:p,data_si:d,data_ei:d+f*l,cursor:c,ctrl_bits:i};a(T)&&_.push(T)}return _},Ba=(t,r,a,_=1)=>{var e=t[q],n=t.subarray(P),s=r.subarray(at);for(let y=0;y<e;++y){var i=xt(n,y),l=n[h*y+O],o=n[h*y+N],c=n[h*y+F],f=n[h*y+X],p=n[h*y+rt],d=s[y],T={mx_cnt:l,used_cnt:o,unused_cnt:l-o,slab_sz:f,slab_algn:p,data_si:d,data_ei:d+f*l,cursor:c,ctrl_bits:i};if(f===a&&p===_)return T}return null},xa=(t,r,a=1)=>{var _=t[q],e=t.subarray(P);let n=0,s=_;for(;n<s;){let o=n+Math.floor((s-n)/2),c=o*h;e[c+X]<r?n=o+1:s=o}for(let o=n;o<_;o++){let c=o*h;if(e[c+rt]<a)continue;let p=e[c+N],d=e[c+O];if(p<d){var i=e.subarray(c),l=e.subarray(e[c+tt]);return[i,l,o]}}return[null,null,-1]},Ia=(t,r,a)=>{var _=t[q],e=t.subarray(P);let n=0,s=_;for(;n<s;){let g=n+Math.floor((s-n)/2),v=g*h,B=r[g],L=e[v+O],S=e[v+X],x=B+S*L;if(a<B)s=g;else if(a>=x)n=g+1;else{n=s=g;break}}if(n>=_)return[null,null,-1,-1];let i=n*h,l=r[n],o=e[i+O],c=e[i+X],f=l+c*o;if(!(a>=l&&a<f))return[null,null,-1,-1];let p=a-l;if(p%c!==0)return[null,null,-1];let d=p/c,T=e.subarray(i),y=e.subarray(e[i+tt]);return[T,y,d,n]},ft=(t,r,a,_)=>{var e=r/_|0,n=r%_;t[e]=t[e]&~(1<<n)|(a&1)<<n},ct=(t,r,a)=>{var _=r/a|0,e=r%a;return t[_]>>>e&1},ma=(t,r,a)=>{let _=r/a|0,n=1<<r%a,s=t[_];return s&n?!1:(t[_]=s|n,!0)},za=(t,r,a)=>{let _=r/a|0,n=1<<r%a,s=t[_];return s&n?(t[_]=s&~n,!0):!1},Ra=(t,r,a)=>{var _=t[F],e=t[O],n=t[N];if(n<e){for(var s=_;s<e-1;++s)if(!ct(r,s,a))return ft(r,s,1,a),t[F]=s+1,t[N]++,s;{var s=e-1;if(!ct(r,s,a))return ft(r,s,1,a),t[F]=0,t[N]++,s}for(var s=0;s<_;++s)if(!ct(r,s,a))return ft(r,s,1,a),t[F]=s+1,t[N]++,s;return-1}else return-1};_r.exports={nm2sz:Kt,max_tacls:Jt,calc_ctrl_bits_sz:Bt,is_valid_algn:Wt,dict_cfg_to_ary_cfg:Qt,merge_slab_ary:rr,sort_slab_ary:tr,__updt_data_si_if_data_ptr_match_align:ga,_calc_slab_info:ar,calc_slab_info:Ea,read_one_slab_ary_from_tas:La,read_slab_ary_from_tas:wa,aloc_slct_slab:xa,dloc_slct_slab:Ia,set_bit:ft,get_bit:ct,set_bit_to_true_if_false:ma,set_bit_to_false_if_true:za,find_fst_false_bit_and_set_to_true:Ra,get_ctrl_bits:xt,find_slabs:Sa,find_slab:Ba}});var lr=R((Ee,ir)=>{var{get_byt_from_cls:Ua,set_nth_byte:ge,calc_prepad_sz:er,get_cls_from_dump_fst_byte:Da}=W(),{LOAD_HINT_SZ:ut,LOAD_HINT_CLS_BYT_IDX:Na,LOAD_HINT_PRE_PAD_SZ_IDX:Pa,CTRL_HEAD_CNT:Oa,SLAB_ARY_LEN_IDX:Ma,SLAB_STRIDE_V:V,slab_ctrl_bits_start_idx:Fa,slab_mx_cnt_idx:Ya,slab_used_cnt_idx:Ca,slab_cursor_idx:Ha,slab_sz_idx:$a,slab_algn_idx:Xa,PTR_HEAD_CNT:ja,DATA_PTR_IDX:ka,DATA_LOAD_HINT_SZ:qa}=$(),Za=Z(),It=(t,r,a)=>{var _=Ua(r);t[Na]=_,t[Pa]=a},nr=(t,r,a)=>{var _=BigInt(r.data_sz)<<8n|BigInt(r.data_algn)<<4n|BigInt(r.pad_bfr_data_sz);r.data_inline||(_=-_),t.setBigInt64(a,_,!0)},sr=(t,r,a)=>{var _=new DataView(t);ctrl_load_hint=new Uint8Array(t,r,ut),It(ctrl_load_hint,a.CTRL_TACLS,a.pad_bfr_ctrl_sz),r+=ut,pad_bfr_ctrl=new Uint8Array(t,r,a.pad_bfr_ctrl_sz),r+=a.pad_bfr_ctrl_sz,ctrl_ta=new a.CTRL_TACLS(t,r,a.ctrl_sz/a.CTRL_TACLS.BYTES_PER_ELEMENT),ctrl_ta[Ma]=a.slab_ary.length,ctrl_vw=ctrl_ta.subarray(Oa),r+=a.ctrl_sz,ptr_load_hint=new Uint8Array(t,r,ut),It(ptr_load_hint,a.PTR_TACLS,a.pad_bfr_ptr_sz),r+=ut,pad_bfr_ptr=new Uint8Array(t,r,a.pad_bfr_ptr_sz),r+=a.pad_bfr_ptr_sz,ptr_ta=new a.PTR_TACLS(t,r,a.ptr_sz/a.PTR_TACLS.BYTES_PER_ELEMENT),ptr_ta[ka]=a.data_ptr,ptr_vw=ptr_ta.subarray(ja),r+=a.ptr_sz,nr(_,a,r),r+=qa;var e={ctrl_load_hint,pad_bfr_ctrl,ctrl_ta,ctrl_vw,ptr_load_hint,pad_bfr_ptr,ptr_ta,ptr_vw};return[e,r]},Va=(t,r,a)=>{var _,e,n,s,i,l,o,c,f=t.src,b=t.offset,p=a.inline,d;if(f===null)a.inline?f=new ArrayBuffer(r.cpdsz):f=new ArrayBuffer(r.cpsz),b=0;else if(a.inline){b+=er(b,r.cpdalgn);var T=f.byteLength-b;if(T<r.cpdsz)throw new Error(`ab.byteLength(${f.byteLength}) MUST >= ${b+r.cpdsz}`)}else{b+=er(b,r.cpalgn);var T=f.byteLength-b;if(T<r.cpsz)throw new Error(`ab.byteLength(${f.byteLength}) MUST >= ${b+r.cpsz}`)}var[y,b]=sr(f,b,r);if(a.inline&&(y.pad_bfr_data=new Uint8Array(f,b,r.pad_bfr_data_sz),b+=r.pad_bfr_data_sz,r.data_ptr=b,Za.__updt_data_si_if_data_ptr_match_align(r.slab_ary,b),y.data=new Uint8Array(f,b,r.data_sz),b+=r.data_sz),f.byteLength>=b)return y;throw`underlying.src.byteLength(${f.byteLength}) MUST >= ${b}`},Ga=(t,r,a)=>{var _=t.slab_ary,e=_.length;for(let s=0;s<e;++s){var n=_[s];r[s*V+Fa]=n.ctrl_bits_start,r[s*V+Ya]=n.mx_cnt,r[s*V+Ca]=0,r[s*V+Ha]=0,r[s*V+$a]=n.slab_sz,r[s*V+Xa]=n.slab_algn,a[s]=n.data_si}},Ka=(t,r)=>Da(t[r]);ir.exports={init_meta:It,store_data_load_hint:nr,creat_tas:Va,creat_tas_with_ab_and_aligned_offset:sr,init_vws:Ga,read_tacls:Ka}});var br=R((Re,ur)=>{var{get_cls_from_dump_fst_byte:or}=W(),{LOAD_HINT_SZ:bt,LOAD_HINT_CLS_BYT_IDX:fr,LOAD_HINT_PRE_PAD_SZ_IDX:cr,CTRL_HEAD_CNT:we,SLAB_ARY_LEN_IDX:Ja,SLAB_STRIDE_V:Le,slab_ctrl_bits_start_idx:Se,slab_mx_cnt_idx:Be,slab_used_cnt_idx:xe,slab_cursor_idx:Ie,slab_sz_idx:me,slab_algn_idx:ze,PTR_HEAD_CNT:Wa,DATA_PTR_IDX:Qa}=$(),{read_slab_ary_from_tas:t_}=Z();function r_(){return this.ctrl_load_hint.buffer}function a_(){return this.ctrl_load_hint.byteLength+this._underlying_pad_sz_bfr_ctrl+this.ctrl_ta.byteLength+this.ptr_load_hint.byteLength+this._underlying_pad_sz_bfr_ptr+this.ptr_ta.byteLength}function __(){return or(this.ctrl_load_hint[fr])}function e_(){return this.ctrl_load_hint[cr]}function n_(){return or(this.ptr_load_hint[fr])}function s_(){return this.ptr_load_hint[cr]}function i_(){return{ab:this._underlying_ab,sz:this._underlying_sz,ctrl:{pool_cnt:this.pool_cnt,pad_sz:this._underlying_pad_sz_bfr_ctrl,cls:this._underlying_ctrl_cls},ptr:{data_ptr:this.data_ptr,pad_sz:this._underlying_pad_sz_bfr_ptr,cls:this._underlying_ptr_cls}}}function l_(){return new Uint8Array(this.underlying_ab,this.ctrl_load_hint.byteOffset+bt,this.underlying_pad_sz_bfr_ctrl)}function o_(){return this.CTRL_TACLS.BYTES_PER_ELEMENT}function f_(){return this.ctrl_ta[Ja]}function c_(){return this.CTRL_TACLS.BYTES_PER_ELEMENT*this.pool_cnt}function u_(){return this.ptr_load_hint.byteOffset-this.ctrl_ta.byteOffset}function b_(){return t_(this.ctrl_ta,this.ptr_ta)}function d_(){return new Uint8Array(this.underlying_ab,this.ptr_load_hint.byteOffset+bt,this._underlying_pad_sz_bfr_ptr)}function y_(){return this.PTR_TACLS.BYTES_PER_ELEMENT}function p_(){return this.PTR_TACLS.BYTES_PER_ELEMENT*this.pool_cnt}function h_(){return this.PTR_TACLS.BYTES_PER_ELEMENT*(Wa+this.pool_cnt)}function A_(){return this.ptr_ta[Qa]}function T_(){var t=this._underlying_ab,r=this.ptr_ta.byteOffset+this.ptr_sz,a=new DataView(t),_=a.getBigInt64(r,!0),e=!1;_>0n?e=!0:_=-_;var n=Number(_>>8n),s=(_&0xF0n)>>4n,i=_&0x0Fn;return{inline:e,sz:n,algn:Number(s),pad_bfr_data_sz:Number(i)}}function v_(){return this.data_info.sz}function g_(){return this.data_info.algn}function E_(){return this.data_info.inline}function w_(){if(this.cond_data_inline){var t=this.data_info.pad_bfr_data_sz,r=this.ptr_ta.byteOffset+this.ptr_sz+8;return new Uint8Array(this.underlying_ab,r,r+t)}else return null}function L_(){var t=this.data_info.pad_bfr_data_sz;return this.ptr_ta.byteOffset+this.ptr_sz+8+t}function S_(){return this.cond_data_inline?this._data_ptr_if_inline===this.data_ptr:!0}function B_(){return Math.max(this.ctrl_algn,this.ptr_algn)}function x_(){return bt+this._underlying_pad_sz_bfr_ctrl+this.ctrl_sz+bt+this._underlying_pad_sz_bfr_ptr+this.ptr_sz+8}function I_(){return Math.max(this.cpalgn,this.data_algn)}function m_(){var t=this.data_info;return this.cpsz+t.pad_bfr_data_sz+t.sz}function z_(){var t={},r={},a=this.slab_ary;for(let n of a){var _=`sz = ${n.slab_sz}`.padEnd(24)+`align = ${n.slab_algn} `.padEnd(8)+"|",e="|"+` used_cnt = ${n.used_cnt}`.padEnd(24)+`unused_cnt = ${n.mx_cnt-n.used_cnt}`.padEnd(24);n.used_cnt<n.mx_cnt?t[_]=e:r[_]=e}return{alocable:t,unalocable:r}}ur.exports={_underlying:i_,_underlying_ab:r_,_underlying_sz:a_,_underlying_ctrl_cls:__,_underlying_pad_sz_bfr_ctrl:e_,_pad_bfr_ctrl:l_,ctrl_algn:o_,pool_cnt:f_,ctrl_entries_sz:c_,ctrl_sz:u_,_underlying_ptr_cls:n_,_underlying_pad_sz_bfr_ptr:s_,_pad_bfr_ptr:d_,ptr_algn:y_,ptr_sz:h_,ptr_entries_sz:p_,data_ptr:A_,_data_ptr_if_inline:L_,_cond_data_ptr_valid:S_,_pad_bfr_data:w_,data_info:T_,data_algn:g_,data_sz:v_,cond_data_inline:E_,slab_ary:b_,stats:z_,cpalgn:B_,cpsz:x_,cpdalgn:I_,cpdsz:m_}});var hr=R((Ye,pr)=>{var U=Z(),{LOAD_HINT_SZ:Ue,LOAD_HINT_CLS_BYT_IDX:De,LOAD_HINT_PRE_PAD_SZ_IDX:Ne,CTRL_HEAD_CNT:Pe,SLAB_ARY_LEN_IDX:R_,SLAB_STRIDE_V:dt,slab_ctrl_bits_start_idx:Oe,slab_mx_cnt_idx:mt,slab_used_cnt_idx:yr,slab_cursor_idx:Me,slab_sz_idx:_t,slab_algn_idx:U_,PTR_HEAD_CNT:Fe,DATA_PTR_IDX:dr}=$();function D_(t){var r=dt*t;return this.ctrl_vw.subarray(r,r+dt)}function N_(t){return U.read_one_slab_ary_from_tas(this.ctrl_ta,this.ptr_ta,t)}function P_(t){var[r,a,_,e]=U.dloc_slct_slab(this.ctrl_vw,this.ptr_vw,t),n=r[mt],s=r[yr],i=r[_t],l=r[U_],o=ptr_vw[e];return{mx_cnt:n,used_cnt:s,unused_cnt:n-s,slab_sz:i,slab_algn:l,data_si:o,data_ei:o+i*n,ctrl_bits:a}}function O_(t){return U.get_ctrl_bits(this.ctrl_vw,t)}function M_(t,r=1){return U.find_slab(this.ctrl_ta,this.ptr_ta,t,r)}function F_(t=r=>!0){return U.find_slabs(this.ctrl_ta,this.ptr_ta,t)}function Y_(t,r){var a=this.get_ctrl_bits(t);return U.get_bit(a,r,this.bit_cnt_per_unit_v)}function C_(t,r){return!this.is_aloced(t,r)}function H_(t){return this.ptr_vw[t]}function $_(t){var r=dt*t,a=this.ctrl_vw[r+mt],_=this.ctrl_vw[r+_t],e=this.ptr_vw[t];return e+_*a}function X_(t){var r=dt*t,a=this.ctrl_vw[r+mt],_=this.ctrl_vw[r+_t],e=this.ptr_vw[t];return[e+_*a,e]}function j_(t,r){var a=this.ptr_vw[t],_=this.get_ctrl_entry(t),e=_[_t],n=a+e*r,s=n+e;return[n,s]}function k_(t,r=1){var[a,_,e]=U.aloc_slct_slab(this.ctrl_ta,t,r);if(a!==null){var n=U.find_fst_false_bit_and_set_to_true(a,_,this.bit_cnt_per_unit_v);if(n>=0){var s=this.data_ptr,i=this.ptr_vw[e],l=a[_t],o=s+i+l*n,c=o+l;return[c,o]}else return[0,0]}else return[0,0]}function q_(t){var r=t-this.data_ptr,[a,_,e,n]=U.dloc_slct_slab(this.ctrl_ta,this.ptr_vw,r);return a!==null&&U.set_bit_to_false_if_true(_,e,this.bit_cnt_per_unit_v)?(a[yr]--,!0):!1}function Z_(){var t=this._underlying_ab,r=this.ctrl_load_hint.byteOffset;return this.cond_data_inline?new Uint8Arrayy(t,r,r+this.cpdsz):new Uint8Array(t,r,r+this.cpsz)}function V_(t){var r=t-this.ptr_ta[dr];this.ptr_ta[dr]=t;var a=this.ctrl_ta[R_],_=this.ptr_vw;for(let e=0;e<a;++e)_[e]+=r}pr.exports={get_ctrl_entry:D_,get_ctrl_entry_desc:N_,get_ctrl_bits:O_,get_ctrl_of_si:P_,get_data_si:H_,get_data_ei:$_,get_data_rng:X_,is_freeed:C_,is_aloced:Y_,aloc:k_,dloc:q_,dump:Z_,find_slab:M_,find_slabs:F_,get_siei:j_,_updt_data_ptr:V_}});var le=R((Je,w)=>{var At=Ut(),Ce=Nt(),{get_nth_byte:He,get_cls_from_dump_fst_byte:Ar,calc_prepad_sz:$e,read_dv_with_cls:yt,fmt_underlying:G_,fmt_data:K_}=W(),{calc_slab_info:J_,slct_slab:Xe}=Z(),vr=$(),j=Z(),G=lr(),{LOAD_HINT_SZ:Y,LOAD_HINT_CLS_BYT_IDX:je,LOAD_HINT_PRE_PAD_SZ_IDX:ke,CTRL_HEAD_CNT:zt,SLAB_ARY_LEN_IDX:W_,SLAB_STRIDE_V:Q_,slab_ctrl_bits_start_idx:qe,slab_mx_cnt_idx:te,slab_used_cnt_idx:Ze,slab_cursor_idx:Ve,slab_sz_idx:Ge,slab_algn_idx:Ke,PTR_HEAD_CNT:pt,DATA_PTR_IDX:Tr}=$(),K=()=>{var t=vr.DFLT_CFG();return j.merge_slab_ary(j.sort_slab_ary(j.dict_cfg_to_ary_cfg(t)))},re=(t=0)=>J_(K(),t);function M(t,r,a,_){var e=r[W_];At.def_ps(this,{CTRL_TACLS:r.constructor,bit_cnt_per_unit_v:8*r.constructor.BYTES_PER_ELEMENT,ctrl_load_hint:t,ctrl_ta:r,ctrl_vw:r.subarray(zt),ctrl_entries:r.subarray(zt,zt+e),PTR_TACLS:_.constructor,ptr_load_hint:a,ptr_ta:_,ptr_vw:_.subarray(pt)})}var ae=br(),_e=hr();At.add_getters(M,ae);At.add_mthds(M,_e);Object.defineProperty(M.prototype,Symbol.toStringTag,{get:function(){return JSON.stringify(this.stats,null,2)}});var ee=(t,r,a,_)=>{a.data_inline=!1,a.data_ptr=_;let[{ctrl_load_hint:e,ctrl_ta:n,ptr_load_hint:s,ptr_ta:i,ctrl_vw:l,ptr_vw:o},c]=G.creat_tas_with_ab_and_aligned_offset(t,r,a);return G.init_vws(a,l,o),new M(e,n,s,i)},gr=(t,r=K(),a={ptr:0,inline:!1})=>{t=G_(t),a=K_(a),r=j.calc_slab_info(r,a);let{ctrl_load_hint:_,ctrl_ta:e,ptr_load_hint:n,ptr_ta:s,ctrl_vw:i,ptr_vw:l}=G.creat_tas(t,r,a);return G.init_vws(r,i,l),new M(_,e,n,s)},ne=(t=K(),r={ptr:0,inline:!1})=>gr(null,t,r),Er=t=>{var r=0;let a=Ar(t[r]);r+=1;let _=a.BYTES_PER_ELEMENT,e=t[r];r+=1,r+=e;var n=r,s=new DataView(t.buffer,t.byteOffset,t.byteLength);let i=yt(s,a,r,!0);r+=a.BYTES_PER_ELEMENT;var l=0;for(let I=0;I<i;I++){r+=a.BYTES_PER_ELEMENT*Q_;var o=yt(s,a,r+te,!0);l+=j.calc_ctrl_bits_sz(o,a)}r+=l;let c=Ar(t[r]);r+=1;let f=c.BYTES_PER_ELEMENT,p=t[r];r+=1,r+=p;var d=r;let T=yt(s,c,r,!0);r+=c.BYTES_PER_ELEMENT;var y=r;r+=c.BYTES_PER_ELEMENT*i;var b=yt(s,BigInt64Array,r,!0);let g=b>0;b<0n&&(b=-b);let v=Number(b>>8n),B=Number((b&0xF0n)>>4n),L=Number(b&0x0Fn);r+=8;let S=Math.max(_,f);return{offset:r,CTRL_TACLS:a,ctrl_algn:_,ctrl_ta_offset:n,pool_cnt:i,pad_bfr_ctrl_sz:e,PTR_TACLS:c,ptr_algn:f,ptr_ta_offset:d,data_ptr:T,pad_bfr_ptr_sz:p,data_inline:g,data_algn:B,data_sz:v,pad_bfr_data_sz:L,cp_algn:S,cp_sz:r}},wr=(t,r)=>{var a=t.byteOffset;let{offset:_,CTRL_TACLS:e,ctrl_algn:n,ctrl_ta_offset:s,pool_cnt:i,pad_bfr_ctrl_sz:l,PTR_TACLS:o,ptr_algn:c,ptr_ta_offset:f,data_ptr:p,pad_bfr_ptr_sz:d,data_inline:T,data_algn:y,data_sz:b,pad_bfr_data_sz:g,cp_algn:v,cp_sz:B}=r,L=_;if(t.byteLength<L)throw`u8a.byteLength(${t.byteLength}) MUST >= ${L}`;a%v===0||(t=t.slice(0),a=0);{var S=t.subarray(0,Y),x=new e(t.buffer,a+Y,(f-d-Y-s)/e.BYTES_PER_ELEMENT),I=t.subarray(f-Y,f),C=new o(t.buffer,a+f,pt+i);return new M(S,x,I,C)}},Lr=(t,r)=>{var a=t.byteOffset;let{offset:_,CTRL_TACLS:e,ctrl_algn:n,ctrl_ta_offset:s,pool_cnt:i,pad_bfr_ctrl_sz:l,PTR_TACLS:o,ptr_algn:c,ptr_ta_offset:f,data_ptr:p,pad_bfr_ptr_sz:d,data_inline:T,data_algn:y,data_sz:b,pad_bfr_data_sz:g,cp_algn:v,cp_sz:B}=r;_+=g;var L=_;let S=_+b,x=Math.max(v,y);if(t.byteLength<S)throw`u8a.byteLength(${t.byteLength}) MUST >= ${S}`;a%x===0||(t=t.slice(0),a=0);{var I=t.subarray(0,Y),C=new e(t.buffer,a+Y,(f-d-Y-s)/e.BYTES_PER_ELEMENT),et=t.subarray(f-Y,f),D=new o(t.buffer,a+f,pt+i);D[Tr]=a+L;var k=D.subarray(pt),m=D[Tr]-p;for(let A=0;A<i;++A)k[A]+=m;return new M(I,C,et,D)}},Sr=t=>{let r=Er(t);return inline?Lr(t,r):wr(t,r)},ht=class{slabs;data;constructor(r,a){this.slabs=r,this.data=data,Object.seal(this)}dump(){return this.slabs.dump()}aloc(r,a=1){var[_,e]=this.slabs.aloc(r,a);return this.data.subarray(e,_)}dloc(r){if(r.buffer===this.data.buffer){var a=r.byteOffset;return this.slabs.dloc(a)}else return!1}},Br=(t,r)=>new ht(t,r),xr=(t,r=K())=>{let a={ptr:0,inline:!0};r=j.calc_slab_info(r,a);let _=G.creat_tas(t,r,a),{ctrl_load_hint:e,ctrl_ta:n,ptr_load_hint:s,ptr_ta:i,ctrl_vw:l,ptr_vw:o}=_;return G.init_vws(r,l,o),Br(new M(e,n,s,i),_.data)},se=(t=K())=>xr(null,t),ie=t=>{var r=Sr(t),a=t.subarray(r._data_ptr_if_inline);return Br(r,a)};w.exports=ne;w.exports.load=Sr;w.exports.creat_on_external_ab=gr;w.exports.creat_dflt_cfg=K;w.exports.calc_dflt_slab_info=re;w.exports.creat_non_inline_on_aligned_external_ab_aft_calc_cfg=ee;w.exports.preload=Er;w.exports.load_non_inline_aft_preload=wr;w.exports.load_inline_aft_preload=Lr;w.exports.new_buf=se;w.exports.load_buf=ie;w.exports.new_buf_on_external_ab=xr;At.def_ps(w.exports,{Slabs:M,Buf:ht,_util:j,_const:vr})});return le();})();
@@ -0,0 +1,40 @@
1
+ const x=require("../index")();
2
+
3
+ var slab_ary = x.slab_ary;
4
+ console.log(x);
5
+ var si = Date.now();
6
+
7
+ var total = (0);
8
+ var sz = 0;
9
+ for(let each of slab_ary) {
10
+ let {slab_sz,mx_cnt} = each;
11
+ console.log({slab_sz,mx_cnt});
12
+ for(let i=0;i<mx_cnt;++i) {
13
+ x.aloc(slab_sz);
14
+ sz += (slab_sz);
15
+ }
16
+ total += (mx_cnt);
17
+ console.log("finish",slab_sz,{total,sz})
18
+ }
19
+ var ei = Date.now();
20
+ console.log(`aloc ${total} cost ${(ei-si)/1000} secs, avg(${total/(ei-si)*1000})/sec , avg(${sz/(ei-si)*1000}) bytes/sec`);
21
+
22
+ console.log(x);
23
+
24
+ var si2 = Date.now();
25
+ var total = (0);
26
+ var sz = 0;
27
+ for(let id=0;id<slab_ary.length;++id) {
28
+ let {slab_sz,mx_cnt} = slab_ary[id];
29
+ for(let i=0;i<mx_cnt;++i) {
30
+ var [si,ei] = x.get_siei(id,i);
31
+ x.dloc(si);
32
+ sz += (slab_sz);
33
+ }
34
+ total += (mx_cnt);
35
+ console.log("finish",slab_sz,{total,sz})
36
+ }
37
+ var ei2 = Date.now();
38
+ console.log(`dloc ${total} cost ${(ei2-si2)/1000} secs, avg(${total/(ei2-si2)*1000})/sec , avg(${sz/(ei2-si2)*1000}) bytes/sec`);
39
+
40
+ console.log(x);
@@ -0,0 +1,194 @@
1
+ // ===== 被测试函数 =====
2
+ const merge_slab_ary = (slab_ary) => {
3
+ const n = slab_ary.length;
4
+ if (n === 0) return [];
5
+
6
+ const out = [];
7
+
8
+ let prev = slab_ary[0];
9
+ let acc_cnt = prev.mx_cnt;
10
+
11
+ for (let i = 1; i < n; i++) {
12
+ let cur = slab_ary[i];
13
+
14
+ if (
15
+ cur.slab_sz === prev.slab_sz &&
16
+ cur.slab_algn === prev.slab_algn
17
+ ) {
18
+ acc_cnt += cur.mx_cnt;
19
+ } else {
20
+ out.push({
21
+ slab_sz: prev.slab_sz,
22
+ slab_algn: prev.slab_algn,
23
+ mx_cnt: acc_cnt
24
+ });
25
+
26
+ prev = cur;
27
+ acc_cnt = cur.mx_cnt;
28
+ }
29
+ }
30
+
31
+ out.push({
32
+ slab_sz: prev.slab_sz,
33
+ slab_algn: prev.slab_algn,
34
+ mx_cnt: acc_cnt
35
+ });
36
+
37
+ return out;
38
+ };
39
+
40
+ const merge_slab_ary_inplace = (arr) => {
41
+ if (arr.length === 0) return arr;
42
+
43
+ let write = 0;
44
+
45
+ for (let read = 1; read < arr.length; read++) {
46
+ let a = arr[write];
47
+ let b = arr[read];
48
+
49
+ if (a.slab_sz === b.slab_sz && a.slab_algn === b.slab_algn) {
50
+ a.mx_cnt += b.mx_cnt;
51
+ } else {
52
+ write++;
53
+ arr[write] = b;
54
+ }
55
+ }
56
+
57
+ arr.length = write + 1;
58
+ return arr;
59
+ };
60
+
61
+ // ===== 工具 =====
62
+ const assert = (cond, msg) => {
63
+ if (!cond) throw new Error("❌ " + msg);
64
+ };
65
+
66
+ const deepEq = (a, b) => {
67
+ return JSON.stringify(a) === JSON.stringify(b);
68
+ };
69
+
70
+ // ===== 测试 =====
71
+
72
+ const test_basic = () => {
73
+ const input = [
74
+ { slab_sz: 16, slab_algn: 8, mx_cnt: 10 },
75
+ { slab_sz: 16, slab_algn: 8, mx_cnt: 5 },
76
+ { slab_sz: 16, slab_algn: 16, mx_cnt: 2 },
77
+ { slab_sz: 24, slab_algn: 8, mx_cnt: 3 },
78
+ { slab_sz: 24, slab_algn: 8, mx_cnt: 7 },
79
+ ];
80
+
81
+ const expected = [
82
+ { slab_sz: 16, slab_algn: 8, mx_cnt: 15 },
83
+ { slab_sz: 16, slab_algn: 16, mx_cnt: 2 },
84
+ { slab_sz: 24, slab_algn: 8, mx_cnt: 10 },
85
+ ];
86
+
87
+ const out = merge_slab_ary(input);
88
+
89
+ assert(deepEq(out, expected), "basic merge failed");
90
+ console.log("✅ test_basic passed");
91
+ };
92
+
93
+ const test_single = () => {
94
+ const input = [
95
+ { slab_sz: 8, slab_algn: 1, mx_cnt: 1 }
96
+ ];
97
+
98
+ const out = merge_slab_ary(input);
99
+
100
+ assert(deepEq(out, input), "single failed");
101
+ console.log("✅ test_single passed");
102
+ };
103
+
104
+ const test_empty = () => {
105
+ const out = merge_slab_ary([]);
106
+ assert(Array.isArray(out) && out.length === 0, "empty failed");
107
+ console.log("✅ test_empty passed");
108
+ };
109
+
110
+ const test_no_merge = () => {
111
+ const input = [
112
+ { slab_sz: 8, slab_algn: 1, mx_cnt: 1 },
113
+ { slab_sz: 16, slab_algn: 8, mx_cnt: 2 },
114
+ { slab_sz: 24, slab_algn: 8, mx_cnt: 3 },
115
+ ];
116
+
117
+ const out = merge_slab_ary(input);
118
+
119
+ assert(deepEq(out, input), "no merge failed");
120
+ console.log("✅ test_no_merge passed");
121
+ };
122
+
123
+ const test_inplace = () => {
124
+ const input = [
125
+ { slab_sz: 16, slab_algn: 8, mx_cnt: 10 },
126
+ { slab_sz: 16, slab_algn: 8, mx_cnt: 5 },
127
+ { slab_sz: 24, slab_algn: 8, mx_cnt: 3 },
128
+ ];
129
+
130
+ const out = merge_slab_ary_inplace(input);
131
+
132
+ assert(out.length === 2, "inplace length wrong");
133
+ assert(out[0].mx_cnt === 15, "inplace merge wrong");
134
+
135
+ console.log("✅ test_inplace passed");
136
+ };
137
+
138
+ // ===== 简单 fuzz =====
139
+ const test_random = () => {
140
+ const gen = () => {
141
+ let sizes = [8,16,24,32];
142
+ let aligns = [1,8,16];
143
+
144
+ let arr = [];
145
+
146
+ for (let i = 0; i < 50; i++) {
147
+ arr.push({
148
+ slab_sz: sizes[Math.random() * sizes.length | 0],
149
+ slab_algn: aligns[Math.random() * aligns.length | 0],
150
+ mx_cnt: (Math.random() * 10 | 0) + 1
151
+ });
152
+ }
153
+
154
+ // 排序(模拟前提)
155
+ arr.sort((a,b)=>{
156
+ if (a.slab_sz !== b.slab_sz) return a.slab_sz - b.slab_sz;
157
+ return a.slab_algn - b.slab_algn;
158
+ });
159
+
160
+ return arr;
161
+ };
162
+
163
+ for (let i = 0; i < 1000; i++) {
164
+ let arr = gen();
165
+ let out = merge_slab_ary(arr);
166
+
167
+ // 校验:没有重复 key
168
+ for (let j = 1; j < out.length; j++) {
169
+ let a = out[j-1];
170
+ let b = out[j];
171
+
172
+ assert(
173
+ !(a.slab_sz === b.slab_sz && a.slab_algn === b.slab_algn),
174
+ "duplicate after merge"
175
+ );
176
+ }
177
+ }
178
+
179
+ console.log("✅ test_random passed");
180
+ };
181
+
182
+ // ===== run =====
183
+ console.log("=== RUN TESTS ===");
184
+
185
+ test_basic();
186
+ test_single();
187
+ test_empty();
188
+ test_no_merge();
189
+ test_inplace();
190
+ test_random();
191
+
192
+ console.log("🎉 ALL TESTS PASSED");
193
+
194
+
@@ -0,0 +1,93 @@
1
+ const {
2
+ calc_slab_info
3
+ } = require("../util"); // ← 改成你的文件路径
4
+
5
+ // ===== pretty print =====
6
+ const print = (title, data) => {
7
+ console.log("\n=== " + title + " ===");
8
+ console.log(data.slab_ary_sz)
9
+ for (let d of data.slab_ary) {
10
+ console.log(d);
11
+ }
12
+ };
13
+
14
+ // ===== 测试1:dict 输入 =====
15
+ const test_dict = () => {
16
+ const cfg = {
17
+ "16": { slab_algn: 8, mx_cnt: 10 },
18
+ "16b": { slab_algn: 8, mx_cnt: 5 }, // 会 merge
19
+ "32": { slab_algn: 8, mx_cnt: 3 },
20
+ "24": { slab_algn: 8, mx_cnt: 7 },
21
+ };
22
+
23
+ let out = calc_slab_info(Uint32Array, cfg);
24
+
25
+ print("DICT RESULT", out);
26
+ };
27
+
28
+ // ===== 测试2:array 输入 =====
29
+ const test_array = () => {
30
+ const cfg = [
31
+ { slab_sz: 16, slab_algn: 8, mx_cnt: 10 },
32
+ { slab_sz: 16, slab_algn: 8, mx_cnt: 5 }, // merge
33
+ { slab_sz: 24, slab_algn: 8, mx_cnt: 7 },
34
+ { slab_sz: 32, slab_algn: 8, mx_cnt: 3 },
35
+ ];
36
+
37
+ let out = calc_slab_info(Uint32Array, cfg);
38
+
39
+ print("ARRAY RESULT", out);
40
+ };
41
+
42
+ // ===== 测试3:排序验证 =====
43
+ const test_sort = () => {
44
+ const cfg = [
45
+ { slab_sz: 32, slab_algn: 8, mx_cnt: 1 },
46
+ { slab_sz: 16, slab_algn: 16, mx_cnt: 1 },
47
+ { slab_sz: 16, slab_algn: 8, mx_cnt: 1 },
48
+ ];
49
+
50
+ let out = calc_slab_info(Uint32Array, cfg);
51
+
52
+ print("SORT RESULT", out);
53
+
54
+ console.log("\nEXPECT ORDER:");
55
+ console.log("16/8 → 16/16 → 32/8");
56
+ };
57
+
58
+ // ===== 测试4:异常测试 =====
59
+ const test_error = () => {
60
+ try {
61
+ calc_slab_info(Uint32Array, [
62
+ { slab_sz: 16, slab_algn: 3, mx_cnt: 1 } // 非法 align
63
+ ]);
64
+ } catch (e) {
65
+ console.log("\n✅ expected error:", e.message);
66
+ }
67
+ };
68
+
69
+ // ===== 测试5:大一点 =====
70
+ const test_big = () => {
71
+ const cfg = {
72
+ "8": { slab_algn: 1, mx_cnt: 100 },
73
+ "16": { slab_algn: 8, mx_cnt: 80 },
74
+ "24": { slab_algn: 8, mx_cnt: 60 },
75
+ "64": { slab_algn: 16, mx_cnt: 40 },
76
+ "128": { slab_algn: 16, mx_cnt: 20 },
77
+ };
78
+
79
+ let out = calc_slab_info(Uint32Array, cfg);
80
+
81
+ print("BIG RESULT", out);
82
+ };
83
+
84
+ // ===== run =====
85
+ console.log("=== RUN calc_slab_info TEST ===");
86
+
87
+ test_dict();
88
+ test_array();
89
+ test_sort();
90
+ test_error();
91
+ test_big();
92
+
93
+ console.log("\n🎉 DONE");
package/com.sh ADDED
@@ -0,0 +1 @@
1
+ nv_cli_build -m -g nvbufbigslab -i index.js -o DIST/nv-buf-big-slab-bw.js
package/const.js ADDED
@@ -0,0 +1,109 @@
1
+
2
+ const LOAD_HINT_SZ = 2;
3
+ const LOAD_HINT_CLS_BYT_IDX = 0;
4
+ const LOAD_HINT_PRE_PAD_SZ_IDX =1;
5
+
6
+
7
+
8
+ const CTRL_HEAD_CNT = 1;
9
+ const SLAB_ARY_LEN_IDX = 0;
10
+
11
+ const SLAB_STRIDE_V = 6;
12
+ const slab_ctrl_bits_start_idx = 0;
13
+ const slab_mx_cnt_idx = 1;
14
+ const slab_used_cnt_idx = 2;
15
+ const slab_cursor_idx = 3;
16
+ const slab_sz_idx = 4;
17
+ const slab_algn_idx = 5;
18
+
19
+ const PTR_HEAD_CNT = 1;
20
+ const DATA_PTR_IDX = 0;
21
+
22
+ const DATA_LOAD_HINT_SZ = 8;
23
+
24
+
25
+ const DFLT_CFG = ()=>({
26
+ "1" :{mx_cnt: 1024},
27
+ "2" :{mx_cnt: 1024},
28
+ ////
29
+ "4" :{mx_cnt: 2048},
30
+ "6" :{mx_cnt: 2048},
31
+ ////
32
+ "8" :{mx_cnt: 1024*1024},
33
+ "12":{mx_cnt: 1024*1024},
34
+ ////
35
+ "16":{mx_cnt: 1024*1024*4},
36
+ "20":{mx_cnt: 1024*1024*4},
37
+ ////
38
+ "24":{mx_cnt: 1024*1024*8},
39
+ "28":{mx_cnt: 1024*1024*8},
40
+ ////
41
+ "32":{mx_cnt: 1024*1024*16},
42
+ "40":{mx_cnt: 1024*1024*16},
43
+ "48":{mx_cnt: 1024*1024*16},
44
+ "56":{mx_cnt: 1024*1024*16},
45
+ "64":{mx_cnt: 1024*1024*16},
46
+ ////
47
+ "128":{mx_cnt: 1024*1024*4},
48
+ "256":{mx_cnt: 1024*1024*4},
49
+ ////---------------------------------
50
+ "512":{mx_cnt: 1024*1024},
51
+ "1k":{mx_cnt: 1024*1024},
52
+ "2k":{mx_cnt: 1024*1024},
53
+ "4k":{mx_cnt: 1024*1024},
54
+ ////
55
+ "8k":{mx_cnt: 65536*2},
56
+ "16k":{mx_cnt: 65536},
57
+ "32k":{mx_cnt: 32768},
58
+ "64k":{mx_cnt: 8192},
59
+ "128k":{mx_cnt: 4096},
60
+ ////
61
+ "256k":{mx_cnt: 2048},
62
+ "512k":{mx_cnt:2048},
63
+ ////
64
+ "1m" :{mx_cnt:1024},
65
+ "2m" :{mx_cnt:1024},
66
+ });
67
+
68
+ module.exports = {
69
+ LOAD_HINT_SZ ,
70
+ LOAD_HINT_CLS_BYT_IDX ,
71
+ LOAD_HINT_PRE_PAD_SZ_IDX,
72
+ ////
73
+ CTRL_HEAD_CNT,SLAB_ARY_LEN_IDX,
74
+ SLAB_STRIDE_V,
75
+ slab_ctrl_bits_start_idx,
76
+ slab_mx_cnt_idx,
77
+ slab_used_cnt_idx,
78
+ slab_cursor_idx,
79
+ slab_sz_idx,
80
+ slab_algn_idx,
81
+ PTR_HEAD_CNT, DATA_PTR_IDX,
82
+ DATA_LOAD_HINT_SZ,
83
+ DFLT_CFG,
84
+ }
85
+ module.exports.HELP = `
86
+ =================================================================================================
87
+ ctrl-ta-cls-byte 1B | pad-bfr-ctrl-ta-sz 1B | ?pad-bfr-ctrl(pad-bfr-ctrl-ta-sz) |
88
+ --------------------------------------------------------------------------------
89
+ pool_cnt |
90
+ ctrl_bits_start | mx_cnt | used_cn| cursor | slab_sz | slab_algn |
91
+ .....................................................................
92
+ ctrl_bits_start | mx_cnt | used_cn| cursor | slab_sz | slab_algn |
93
+ ctrl_bits |
94
+ ...........
95
+ ctrl_bits |
96
+ --------------------------------------------------------------------------------
97
+ ptr-ta-cls-byte 1B | pad-bfr-ptr-ta-sz 1B | ?pad-bfr-ptr(pad-bfr-ptr-ta-sz) |
98
+ //-----------------------------------------------------------------------
99
+ ptr | 【data_ptr base】
100
+ data_si |
101
+ ........
102
+ data_si |
103
+ -------------------------------------------------------------------------
104
+ data_sz:56 | data_algn:4; | pad_bfr_data_sz:4 非对齐 BigInt64 负数表示非inline 整数表示inline
105
+ // ? pad_bfr_data
106
+ [....bytes.....]
107
+ ==================================================================================================
108
+ `;
109
+