From f2ddabb5b5836c043a60cc070bc5c5094b7f7acb Mon Sep 17 00:00:00 2001 From: Jason Williams Date: Thu, 25 Jun 2020 17:47:43 +0100 Subject: [PATCH 1/4] v0.9 --- CHANGELOG.md | 111 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 103 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 753f456e6a5..7e76dc87265 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,103 @@ # CHANGELOG +# [# 0.9.0 (2020-06-25) - Move to Organisation](https://github.com/boa-dev/boa/compare/v0.8.0...v0.9.0) + +- First Rust project (outside of the compiler itself) to use measureme +- optimised type comparisons +- More benchmarks to help us understand where performance gains can be made + +Feature Enhancements: + +- [FEATURE #419](https://github.com/boa-dev/boa/pull/419): + Object specialization (fast paths for many objects) (@HalidOdat) +- [FEATURE #392](https://github.com/boa-dev/boa/pull/392): + Execution and Node modulization (@Razican) +- [FEATURE #465](https://github.com/boa-dev/boa/issues/465): + Refactoring Value (decouple `Gc` from `Value`) (@HalidOdat) +- [FEATURE #414](https://github.com/boa-dev/boa/issues/414): + Implement `Number` object constants (@Lan2u) (@HalidOdat) +- [FEATURE #345](https://github.com/boa-dev/boa/issues/345): + Implement the optional `replacer` parameter in `JSON.stringify( value[, replacer [, space] ] )` (@n14little) +- [FEATURE #480](https://github.com/boa-dev/boa/issues/480): + Implement global `Infinity` property (@AnirudhKonduru) +- [FEATURE #410](https://github.com/boa-dev/boa/pull/410): + Add support for the reviver function to JSON.parse (@abhijeetbhagat) +- [FEATURE #425](https://github.com/boa-dev/boa/pull/425): + Specification compliant `ToString` (`to_string`) (@HalidOdat) +- [FEATURE #442](https://github.com/boa-dev/boa/pull/442): + Added `TypeError` implementation (@HalidOdat) +- [FEATURE #296](https://github.com/boa-dev/boa/issues/296): + using measureme for profiling the interpreter (@jasonwilliams) +- [FEATURE #450](https://github.com/boa-dev/boa/pull/450): + Specification compliant `ToBigInt` (`to_bigint`) (@HalidOdat) +- [FEATURE #422](https://github.com/boa-dev/boa/pull/422): + Move AST Nodes into their own files, dividing the run function (@Lan2u) (@Razican) +- [FEATURE #455](https://github.com/boa-dev/boa/pull/455): + TemplateLiteral Basic lexer implementation (@croraf) +- [FEATURE #447](https://github.com/boa-dev/boa/issues/447): + parseInt, parseFloat implementation (@Lan2u) +- [FEATURE #435](https://github.com/boa-dev/boa/issues/435): + Optimize type comparisons (@Lan2u) +- [FEATURE #468](https://github.com/boa-dev/boa/pull/468): + Add BigInt.asIntN() and BigInt.asUintN() functions (@Tropid) +- [FEATURE #428](https://github.com/boa-dev/boa/issues/428): + [Feature Request] - Create benchmark for Array manipulation (@abhijeetbhagat) +- [FEATURE #439](https://github.com/boa-dev/boa/issues/439): + Implement break handling in switch statements (@Lan2u) +- [FEATURE #301](https://github.com/boa-dev/boa/issues/301): + Implementing the switch statement in the new parser (@Lan2u) +- [FEATURE #120](https://github.com/boa-dev/boa/issues/120): + Implement `globalThis` (@zanayr) +- [FEATURE #513](https://github.com/boa-dev/boa/issues/513): + Implement `Object.is()` method (@tylermorten) +- [FEATURE #481](https://github.com/boa-dev/boa/issues/481): + Implement global `undefined` property (@croraf) + +Bug Fixes: + +- [BUG #412](https://github.com/boa-dev/boa/pull/412): + Fixed parsing if statement without else block preceded by a newline (@HalidOdat) +- [BUG #409](https://github.com/boa-dev/boa/pull/409): + Fix function object constructable/callable (@HalidOdat) +- [BUG #403](https://github.com/boa-dev/boa/issues/403) + `Value::to_json()` does not handle `undefined` correctly (@n14little) +- [BUG #443](https://github.com/boa-dev/boa/issues/443): + HasOwnProperty should call GetOwnProperty and not GetProperty (@n14little) +- [BUG #210](https://github.com/boa-dev/boa/issues/210): + builtinfun.length undefined (@Croraf) +- [BUG #466](https://github.com/boa-dev/boa/issues/466): + Change `ToPrimitive()` (`to_primitive()`) hint to be an enum, instead of string (@HalidOdat) +- [BUG #421](https://github.com/boa-dev/boa/issues/421): + `NaN` is lexed as a number, not as an identifier (@croraf) +- [BUG #454](https://github.com/boa-dev/boa/issues/454): + Function declaration returns the function, it should return `undefined` (@croraf) +- [BUG #482](https://github.com/boa-dev/boa/issues/482): + Field access should propagate the exception (`Err(_)`) (@neeldug) +- [BUG #463](https://github.com/boa-dev/boa/issues/463): + Use of undefined variable should throw an error (@croraf) +- [BUG #502](https://github.com/boa-dev/boa/pull/502): + Fixed global objects initialization order (@HalidOdat) +- [BUG #509](https://github.com/boa-dev/boa/issues/509): + JSON.stringify(undefined) panics (@n14little) +- [BUG #514](https://github.com/boa-dev/boa/issues/514): + Clean up `Math` Methods (@n14little) +- [BUG #511](https://github.com/boa-dev/boa/issues/511): + [Call] Usage of "this" in methods is not supported (@jasonwilliams) + +Tidy Up & House Keeping: + +- [TIDY #416](https://github.com/boa-dev/boa/pull/416) & [TIDY #423](https://github.com/boa-dev/boa/commit/c8218dd91ef3181e048e7a2659a4fbf8d53c7174): + Update links to boa-dev (@pedropaulosuzuki) +- [TIDY #378](https://github.com/boa-dev/boa/issues/378): + Code Coverage! (@Lan2u) +- [TIDY #431](https://github.com/boa-dev/boa/pull/431): + Updates to PR Benchmarks (@Razican) +- [TIDY #427 #429 #430](https://github.com/boa-dev/boa/commit/64dbf13afd15f12f958daa87a3d236dc9af1a9aa): + Added new benchmarks (@Razican) + # [# 0.8.0 (2020-05-23) - BigInt, Modularized Parser, Faster Hashing](https://github.com/boa-dev/boa/compare/v0.7.0...v0.8.0) -`v0.8.0` brings more language implementations, such as do..while, function objects and also more recent EcmaScript additions, like BigInt. +`v0.8.0` brings more language implementations, such as do..while, function objects and also more recent EcmaScript additions, like BigInt. We have now moved the Web Assembly build into the `wasm` package, plus added a code of conduct for those contributing. The parser has been even more modularized in this release making it easier to add new parsing rules. @@ -90,7 +185,7 @@ Security: # [# 0.7.0 (2020-04-13) - New Parser is 67% faster](https://github.com/boa-dev/boa/compare/v0.6.0...v0.7.0) `v0.7.0` brings a REPL, Improved parser messages and a new parser! -This is now the default behaviour of Boa, so running Boa without a file argument will bring you into a javascript shell. +This is now the default behaviour of Boa, so running Boa without a file argument will bring you into a javascript shell. Tests have also been moved to their own files, we had a lot of tests in some modules so it was time to separate. ## New Parser @@ -161,20 +256,20 @@ Documentation Updates: # [# 0.6.0 (2020-02-14) - Migration to Workspace Architecture + lexer/parser improvements](https://github.com/boa-dev/boa/compare/v0.5.1...v0.6.0) -The lexer has had several fixes in this release, including how it parses numbers, scientific notation should be improved. +The lexer has had several fixes in this release, including how it parses numbers, scientific notation should be improved. On top of that the lexer no longer panics on errors including Syntax Errors (thanks @adumbidiot), instead you get some output on where the error happened. ## Moving to a workspace architecture Boa offers both a CLI and a library, initially these were all in the same binary. The downside is -those who want to embed boa as-is end up with all of the command-line dependencies. +those who want to embed boa as-is end up with all of the command-line dependencies. So the time has come to separate out the two, this is normal procedure, this should be analogous to ripgrep -and the regex crate. +and the regex crate. Cargo has great support for workspaces, so this shouldn't be an issue. ## Benchmarks -We now have [benchmarks which run against master](https://boa-dev.github.io/boa/dev/bench)! +We now have [benchmarks which run against master](https://boa-dev.github.io/boa/dev/bench)! Thanks to Github Actions these will run automatically a commit is merged. Feature enhancements: @@ -283,7 +378,7 @@ Bug fixes: # 0.4.0 (2019-09-25) -v0.4.0 brings quite a big release. The biggest feature to land is the support of regular expressions. +v0.4.0 brings quite a big release. The biggest feature to land is the support of regular expressions. Functions now have the arguments object supported and we have a [`debugging`](docs/debugging.md) section in the docs. Feature enhancements: @@ -327,7 +422,7 @@ Bug fixes: # 0.2.1 (2019-06-30) -Some String prototype methods are implemented. +Some String prototype methods are implemented. Thanks to @lennartbuit we have trim/trimStart/trimEnd added to the string prototype From 96bcb1ae5122f57cbed7715722da434cf693026c Mon Sep 17 00:00:00 2001 From: Jason Williams Date: Thu, 25 Jun 2020 17:56:37 +0100 Subject: [PATCH 2/4] addition of before/after images --- CHANGELOG.md | 11 ++++++++++- docs/img/object_specialization_after.png | Bin 0 -> 100841 bytes docs/img/object_specialization_before.png | Bin 0 -> 79894 bytes 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 docs/img/object_specialization_after.png create mode 100644 docs/img/object_specialization_before.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e76dc87265..2f065dcb696 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,19 @@ # CHANGELOG -# [# 0.9.0 (2020-06-25) - Move to Organisation](https://github.com/boa-dev/boa/compare/v0.8.0...v0.9.0) +# [# 0.9.0 (2020-06-25) - Move to Organisation, 50% faster execution time](https://github.com/boa-dev/boa/compare/v0.8.0...v0.9.0) - First Rust project (outside of the compiler itself) to use measureme - optimised type comparisons - More benchmarks to help us understand where performance gains can be made +- 50% faster start up time to v0.8 + +## Before + +![Before](./docs/img/object_specialization_before.png) + +## After + +![Before](./docs/img/object_specialization_after.png) Feature Enhancements: diff --git a/docs/img/object_specialization_after.png b/docs/img/object_specialization_after.png new file mode 100644 index 0000000000000000000000000000000000000000..3d2d313ffa0dec16339efba4469ff678a5148996 GIT binary patch literal 100841 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%0AL!wS#vH`~az{adKBpo4c_{bw(PJ$Jxw^#K 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�# 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�?-MZ#54Uw-wOm0`gL1O8!+%TaPxjo{d*h%<+)IxW zBB=3*s!p-UIXNL&T-AhormF4!m$*gJj#Z)Nk+b}tlW*VrvLr8#@r7=y0tIqhmM|&k zfNCPbd9fcMfgmoT+p1+Ru-`VQ(5aJ*Eb$7lN4(VAhkMGX4hx31&!Lfdf1~2}yhJBS zosF;XEx5lBzPZ|E0d{?P`709k=df6we>_7ZB_m|{^v&TBLGWyAm}1~*0-4sf^gioN zU9X2`>l1as5KPBSRb}#s0asxXo0K$WYD(uWF%}jUbY~(zpv01d?xB>FH)?8w^bKm$ z-_$a;C}|8D`utjO+nnW1Cd62p=33rsT@_&`BAnrMbR5OfKj#&%7o1J{+Cn5_H6IUJ zN((Y7ip$e;H%fSF+@-_l=x9&2fAe=4N8djR)?yd=4?a9wuI|23JWPD4sm-;uSBIdq zKG2Axxs&#S77w%!4Grz@?-$`7ony^FZyYQz$FpuvFi;WK!a=JmQAm$>%#hv%+KkJo zS^4=1odl*A*KP0rCwlFU)27N^xBaoY#%QO<%5B(8<69B<#Wgs`D=_>XX|t*j?l*P%nXtm+b7n*XB-(;#TuC~L+dOA#w&!@h^Wwo$mbD16p3;s=r30p zi=EFC2naZ&=VNmxR1~A1OixR@G5xiy=8SvZL`dOm(P91&9UP3MwDbLKPl0?hSt?X) zLb>%qd#Il|gkS>WrYH$pgHamiz?XnAI|prU_w@4Eb9&ygYdtOFB5;VmpC6yf!C?#*}0KyHr zh|tl|A;+)ObW*h2*aecini?CS^!Y!qri<%N#_x_-2JH7V3L{?W70)(gFyWJ0llX_@ zEON+(al7su`4v9>yw5q=FLGEfeeiC7Xf=w*GG*a88_U^Owc`|1vk`A|Ls6^H`I)r& z*umIYs&4C}f|R~mE@tN3l|gAlMW|D|aie?bUR)gOM8sz8^eaR5*$UHO63Q{7al(sK z+8!4x)nTDz3I+QV*}O)Xh}ucDpV3u1lZ7L25#i$Cjqe7Y%YPNjK-Jn67sewGsljT< z8Me&Af}XweUtO<=299?*1Nn3|v$@$n0kxXVQ>9NsF|y{*Ff3)Bp~>ZCKeb}q|F#HK zL}w3mUMG5M)a~~(uCU{7VKdPn!Z~<7UeqqQsL{i;<%3_!dA`&!{F)ZBx^pqYRg7z* zunJG_pV@?rlHFPQpwSY7*t_(BrpABs#^bVU&T`V}IZMqzePMc;3(5a67J%5t{#eE6 z!+-;1&m&4v`}op@nYJdipV%+9AuJXx;qUbg>nQp_H{O`z)4IhjJys{DQ&@XP#b^57 z*!aPh4&pZPQPI&M`9EH?)N*lVX-TSJ7_XsGZ@zzQi~$B=~ zfatQiG!#x4r#w}-G$63+^Xj#RIX)DLs^-5K`TXTjJMY$jT-o_!j6?bh0*0p}4MD~a z=)QEu23O@d*c;~le>qhFOsM-~q{DW6Fgq!25Q>L`D~It!3zqC5e^T*vI|FXZ_wTV9 zPi{dxG%PgY6A?jm$-R5hWSFQVyqr+&CzJG4O-;!4XF-}kylg_^FN!bJWJ>}^_Ir7Z zmE0$baVYENz5b$;hR_^Y(A*Ix0zv+;lH4@MBBvy52*zGdRDvsZAD_63nzD0nw70cU zn=d%i+~%=j_#^>t-nJP3d-t*ZZ*TrG`zE>eG%zT-bT5yf!HEZ(TYu@B&#W@T$&#t) zLE|nzncdu6t=5r2Z&!O(tya|fARa0;R_Z#eNQ}x><{6GJ0izza=9P`nAJy>MT={-< z(d)q)VQv0x!E-93M-X_h%dSr}mEh$3FAS(G=@EU?M_bBb{nr~L*Pv)yE!Dsni{;!e z6%FPgJCZE z=n+tZEg)+wNHKR(w!th1l~0UBy41l0w{Bf=$NiM0lPrClYn|jIC=e>c==fMZ<*N73 zmeBjkiXS#(ri3rs%-3-7T(fbbMfv5!e8wZ?Njh9}^Q8cqzPe1KF53P)gbSSifeO$gA??vd)}M1k9Mx&p^6X z^j&j;Qqx**sk?#%Y7jRG#sSE+c=qh=+sqdu0p8|nY6Nb(y%XshUFqzXzcm_r?#PC1 zNQm%hV4O}p&7%wnk#iM7xKi^x`Gc-$P)BW#Z_DJr(V_TE_=I!==kwGv8u&7~A;Mt% znC?klVS(oo>^Hkae0BRzWY{M3Psk8KeiMdHK&W~mxoxlW>QdjLEsc+ZOZ`eykvL^) zR+gv5uMRoKxX0I2RCcjP@69K76`FpQ{B|4NQ(uIMC_`MF^44|6UJnoD&z`zZ(1f2%p z=pJi6wpxPMJk~3yI22OVr^0b^>#Y3!f3-FonD|X66m>TP0*Y04m`D+ob$* z1Hn8T*v}jeKov6eJt_IM=>F3NSHpZ1D7LkyCa0szo^N*JcIW>!M_TXrchdP3rnd7Ne+>Uh6d0-`AIZ=#ucxL_rd&K4IJgVMxyPk}9t?6hg0B}eh8#A?FSm_Aq;f>3q+t!3Ak8`+}joGLFHE z)KfNDyp2Z-tBc8KDMyK?=ic>)uiR+Q6@Q%@TI47IQy>=pqK)vnrQvdRp{tx2(zeu% zMwyE-#0g?k^{&F-5gvUPvU|tk)l=p31W7jlZR11!qUp$tl=rB_jA(%5@TcIpEU)S{_Ib9M}4kOfE@v-MSsx&6NAXNI_L##e^8V1$Y~cA9Dc*(J$*(P18h>>yy< zLHdS?p{S@RDCh|cp`dHQUT>3|KYC>A&hD-*b2!+0c2~zdgP=byoVhvn@p6Y?ORvlg z(?re^3qp4LgvYu?2xU&?Ar^kV`eESN1xAGHw#=hPb!T@ki5<|6tc1(WA+u)IA*PvW zX|8`3FDrIJo2=UM!zHeVN!=1+V!EBb=D&V?(bZY*h=4R!Wi6%}D0^`JUc}>w!P?Dk zKI;0(t_81^O^3kWo-xXoZeWOux2g5ScF=_)=o+xt#zrs2s9D)vj*C|S&v2RwV`B@D8ITAMvtpy03wQtI{x;eSM3dmp4Z>3hZ;^F0n#NBBC+QsmyopUZ=a$rSg@z?aUi{@Cb-g zA$7vd<9fCm{9i9K7Pi72^v_qSy(m0=d{E+LZqE~7ic@2+ z{F3Ch**f)hL-bOaAlI6Ds`?Sxea%au-+1t5&TL0+FOjE*uWIF6mV8}C)#eujHR%MQ z98OKmA4aZK?K}36ibjE7f(m-6<0l^sWbaUQ7(7m|4JpI$qZ(<}g{9OBGYg^j` zrUH|}1$dt#19`VmBOS#(IZV1!!vg0q8b$0lg681}M)b4M z9r8d#_S&9w<5Op*8#Xpi;?{h)NR8FY%9FF-+kQ9z)-bLoZm8q^{a&PA6yVVV z^?^nM-dcSWZ&(C|bIni1@@8@dZ!^cmc5)(onEG&& zqSRvEY;#7Mc}ohyAE04RV%8=j;19m=OH`D&){py9hYEBdsQAq3vK^O_J0?!JN5YK5xqGz>AO&lE2Xg*ucU%TnM|NKsW)NX4kW5BVkNlg!d75WCL@`>~Ll*G@sJ4+fY z5G`GC_wPshAM$((SHkaed7hq1r2Ru36Lsmk6;?&!`IKFE#C?hW`@@4gHHu0hpBiSn z=Pa}xpGo`iwm8uSdI>}S7__0kVI}NE0(A@q5KB{2WXN+xMP+4TdViBSDV`!k5}I{M zv9J*4-@%yz)}oPLzph-lLKaD5m+uK?&FsRaHv4kZR+Y#6k(Yz)b)_b6JOShx7!qQ+ zF(r|#L?(%8#e8swZj#qeopCXil%Uh2 za(YgSo)4Yc&^)Hk`5I!>g}3@$4;L1qOKmLTksd#y!Zdp#k(1@L3huLCB_WC$iq{e4 zRoYjWZp6fX`+hLrt)3hdJN!#5HZ5tEv;%|go68YR(Z@`xXC*yl#+Yo6`1ZpG?rQRB zK6ZXjcy8pkU4C<+*|*CefML`R#gwb}n;;>#!O6s7leK#BBWDoo&8!=j#sARj@BgLO zyB&}j7&ewe3aq6iTW{iZ_Zl#1K_vk%EiH0aUt-ep%iys;=PGMvHzCkkmEm)EI6-)K z>E}tQ_)dDdTDf*{$`D8f0c;~d9i8OGsi4EG28sNvfCG|mZqqjG_oOHovLC)W#0rVaQ}Ar;{WCFwH<-yaT9lH{T@R~Rr=H6 zA)l5OI{KKj+cnfuI3d`lwkD+W9I|*PO?jeS$*CVnhN|rLzm|XjM8u;hxF+-pqOX@1 zZ{F2FS?D55%|K;VglwN0;YKYbjr$W90QQkTY_IS^0MaMfcik6;U;Scgl#NOCI%MP4 zH^ZFtu6HkYJ&81n0}8dS_>6Rv}$4^ZtUw6LP}|GkH~{9a72=$=C&a z_9IRGhv8fS7>G3Uyb9{-AK&eFfw{M*P`g(i|3b)ThcD|7;j!hVmCj#c0Qr%`sAFXL z)uP=I%gMoLa&l8Yao`-;Exd>EWNLb5O6OH23pc8KMc~bsw@xZAxvoTyG{}C|iZS{( z9&{mQ=IYYzC|_x*S8QyL+=UanhMV7diTE&*|yr_MPUNOw{BbCfhs%`aC>_k>X_<{Y7GYR*SvH z1OsF_E8Ho85{q@lWc%cigR5wJ`pediCk~DS<#DM^p=8x3c8&vtw+~kO$Ls|RM(^Bs zywAoSU++JLopYGRHU@No`Rp|sX@6T15TVwGQ_GQW3_);^wWsczj=4S5HKKCz}g;-)h#0!nsS_|C_xmf4& z%7NB<10F(W1D>HC5Ae#K@i=pqE>3CZY1YE$EUFkqpBvuC&mS-BuvmnTi2j7es>^x- zMMWI1$JO8e>5%0OMmy(%&P9G=zwc$(dM?e$?0=P%{|i6+S5|37G!&BgeP|BqZTnF^J^4QE7kbDzPJT-`aR2IpdhdoozD0iPLCi zuL=62Y}3HD-T8x+ISvOjcX;#Q+mTOEWWWu6f{29`3}T}7Vqa@>b82$3ICXFkGBGiG zBpMC{udQYvZ%qN$8%}5x$(-46`CYfG(9QrXGaU{QS?z zFu%u>^~l+zlFmZEbl~TD*g8-f9wO;$P>`!&f zZfY#|jZZ#?+$_Uz+&s=yxf={5D>T+zc%R@+Vhe!9`5Fp7RG+Sm|A1VTo*t-DRiF-* zn87XxjJ`s--eF~JowP&Qz1$FGoa3~MkwV*)kX1W$W(R8uj!NIi?V2hp$|rz`uh8&t z+TfpEV;x#* z4}I%BfH017-9AruwUWNy*m)<_xYBb_NJNDFwAi@C{}=|Am?oWVBBpoMp;`(UTXTIc zx9h>RfBx($m|^&U2~k+vSxOmU`TtI4-}ov#j%Ut4nr~$T`qnn)HUSZl$cA)5+-1#F zv{W2mNXUC%GvR}Y*F7QX=lmR07a?DD0sS}Wj5MTlq28EI8hM44ptjAfm85}z zpP>MnmA{HQ1#5={;9*bzOcsX_mi^$Bw04z#$q*RdALC9{@zxf-$OgG*`=Rik7wF{ z6~00HIVxVBt3Q9lrghKl>&+K-n+I&yXz&tWJn1aRBT|gpm_3iY70!qSkH`D!-j@7R)?y z^>WKYL+Xu5DeUhPjuv{;?%%%;h5}fc1g8#@Fw7Hw3GZaYt3w3_`ueGnkxvB$1tF)g zk%TxPIpOZgQFzeH8kO{64LZ6e@yAqH?Rxjyz^CqlLc_`Vt|L|mblK)0LxS3UD3Stm zi`AAVRT+`R*ICyR03%r}g709$nc-!Ew}-Avkgr^9xO5<>eXgYQlmWfXq|Q9AkED-tq{Q zBc)uCTaz>5{_;#yQ@VgwIBpFb?+pQ@vXYW6S2d>{i2pREBFD7Liis*BIVd9oYp3Fl+3LM5SFzmbI3CIie84*Z~CfXOubGn6Jq}`umr6RHOX@@0(t5 zahKI(T`IUBc5Gk$#k4LkF8<{_rSr^2RsfsA-_BEay#GY3?sQf*$a3EyeP7Nf`KjXT zak<&zk`jpPq#Fy)aQ@SN3X}Yfn?-r&8+Bqa4ALqd4&x6kE#xO)u(mc`m84b#$jUL- zlY(`GQJqk_U~XmQ2s>`B)pr>god!8YZW6)W2kBBMY4Z1;=W&sY*ljHk<-a*38TiFl zW>+z;`(3YGFU8lOjR=e1w7<}J)}Hm`XkJyHiGPLh?!&_^qBXMpXvI5mNEZ$hdf**{ zLnDJPHpk3K1axY{+^QJAlj(R)(#U#xgnUQps{K*56xTVI&Bjoe{G+Y9X`oh7SwTVZ zZo+-XceG#!2^1BnhSB8Z>(@}5g5V0Bh%+-AE#7*pgi`ykQn5SJ8tE;@>)A3b>~~f6 zPLQ~iw6ylsQu&lm5zAzR6R0s)bY_7&@DIw-TCL<7WHh~2qFk@0q7n*CxAcOPDZ{9& zwfpXW$n;f^z*su{{=l@Ywbjqp*G=-w++LI=@X4PZw^cLGklav<@mNDe#gm&RgX`d6 zqwcmQA0PK|jQK)pLRT8HDMf?ZkJF22@#_UH{{yxD9~Ze4jRFOAb#$&GB0|j`--8D^ ziHS%XX5!T;mIzQW^#1*O_~7R0wx??Btgo$!|0&)>Qv;j}%;D+9#bHv`sA#7Cr-w(a ziz>4WdmD>>V?P3Hw$>PX&=>SxMG@b=jf9GSsZQJ8p4akJ53pvSkIxNzDNNlxYQb~g{ zp`KBbb2mS81$<LEGt$*Why~Fe7J1AcR*_KJp&ecum*qME5O`=-$s^NRlD0TeM#L5Z@At5(VC9r|Syal7Q1gyQnvejsomH>OCv?xw2 z&-3r^fB$|CVupSK*fjwkE0z&k4sarfi8U0Bz1^{Nu(v-;hnXb^G2K~Piybmb&U~bk zw1bes`=&sgF2$F}NmS#R%mM7SCIT1}0vs92sM*-sMoG-(8?%9|NO9(VJJ`F)yme=x z$}K`5lo>8-Kk=L!TpW$LJ_OJ-v@qQH(!UHaFv$!n$p4|H}sUm~GT( z2^@k#ZM{NYyqsOz?+SshVv)gTD|iM? zWj>SV|j+cuHV=o6AFc0)%&9~df($c-yrVG zHb(i&?A4}_N*(CchMB}fSD>N|!aux|+I!f4|80@6hG%-4Z%gF+a54|Bqadi-AW)6-} zUpnBJ$+}VM8Eo{^nA;$%+1Uj*Ixo>9s^MD~j6QM2RK!ZZzjJ~^d7c;C2?AQBD3Z;A zK`%A9O9lr9VX%7*t6zh+;{k;~_XLy-u6Lb*wIFnv`+h)9k8CQ-zHRR#jvAjkMVMkDH?lUy=Ho2a}$(EcQG{5{bz#DPxF#aRCCQ7UcGuW z8XV;zTMj(431xD+EGoV)Y`S`0^{n|}FkaEu^Yd9Yw&T<|MZI8w{cfA|yY}Fuc8?ez z?pOX@8;`RGqrfdA6UF@lPzpDNCna9E#TuVsNP z-L+0ZiFn!WcKc5cfLBMfk=;4XuSi!^l-ICWmb4#>z0B}=-1Sr0h;8|U=i*G|?Q!H3 zr<{X(KQ8EA@525+*4!4Fonc&PG$d<@OZ=pUY)GbHzhz%DJGVq=zA@0X&(hsZf=bAK z^t+u$N5={TPS?|_g#Ucb6Vi*dM^j(UT5BEH~x8CIU zw&0Qs?P49NKe4M6aJ=PHr=By%a<@0pp4n409xmJ@MLGf|9el+ZIV0gggt8LLZNEGR%8(!#{VEl7UB$JcxQJoaeTDMiut zLMNr~l*x5EDLZ>wPJhM9 z<8Aw>Lwl_##Q8vs-)Nb6_eeZZ!Bd6Z)e+~UQcH>l>&;YJr~EpK(%al1T17^WA(C>I zi@ZZ9wJrU8;HNA;VdZMgq* zZv1p=b~=$yJPtPz+#~kTe0wrX&Uth{iVv|MP|!4D+R1Sg=QcNr_jlJrt7>D?+m2GW zXjpM7~wjQ-tcQn#5TEc7R_-xlpnEg~&WM^9$$S^FU$ zM;70F17F7*26_U4SGGSMCu7{Q7OzTX|00u>nVC3*9VhqhU~3-aAsQ+wq15PBh!6;J^8Iq{p*ymv`F|bo2!6E65=3RzGhP!Dd~{$O6Y!>0&6yH4JyuXxP^8 zaew>#5*udk^v1hY2c`!v+Q|pt=wf4MkE?$wr=hBs%2~fKu0`Zbajp4z*OT@Zez&2q z#(}Gjld(vY@hH^PiEG0}7QGybw^7wR>Zvz41*H+~&b5K5S&qJD9VPh`+R(IjnA-Kz z?A(p#qXax1xRds9Klf<$Wf(2jO}`4fDX;M9Kc}Xu@sFZPAzK|MBOv=0Cy& zdHnuL{lg%Y%Z*8OFCO$NBU$>xaI8(PquH)`Bz=aRArj|~80D?%XqfVvY0BTIdHR_z z(l(U9_Hc3WfVinqDR=A#KPWcw_wSoaRTN=E^t_x8yM_s)IzIN zyev`iP)+TPQO3`jjS@>rPB|#bE;U={r9)?-_8cj5z^X?$#P}#l^+*7mdySD-&f#aXU@`LCrl2~r^-b(IKKp24apAsJDW}zu4s5owWO7+1QhnkEaj|N*+7pIBd^cA#q&Px1 z3IfUMKgEWk_tn4#ws*Ji7)~f&+tV&BZjU-d3~u7KTfo>?IHyVZU~lKz(lAcv;K<8q zj|_P)HwgYG8SDC%$6H};wp=@7!v1J!uyPmEa1uMEB;p9+ii+`2q2nStdc&NQAvS^1 zQy5;)Ty1i4u(=I(DWGY{c-*j~)MM5+Hc+l#PfknYvD-;+enpCb5dh_`2M4wnDI56s zcY~V%wl-PV&4ro1mE>w;?77zx^7QjV5bGvvZf8@%H40NGgfU%rdv z?Gs%V@XMKxr_|PB6&Ce&`@`LeZ;(2&nztr?Fb(E^yTVWnwxa5|_&)nGV#)Xsfw!$~ zAIEyg4{C$xQY_Y+w_ExhZZOh>NG5-wb^78@u+=w=``HCTQ7|+AFlvh?1Wziu+O79`PsEA~BO zqmvnAf5`2B{|)@7w87^e7;H{W-r<|LO8tsXo7`=JA$miiKt#Q@TfG3}TNIwU zdn1JQMOKIfVexO4|IGWp{^xInS^znaqqb(D7J!l7s93gCv|#e_MKo8ORq@+vpMI33>r87yAC zal_~t4U*u>`X0s3V8VXww@{b<=rvM%LG=Z-eEa2;IV_G_S%H-`A0CW@wMKmEa+lLh zsL73pAnbb6xn@1a@__BIee_GhDQ{Q=fZ(JyP5ITNBU_WPD0eN#iY@aLMd8HLx}E^0 z^Q+2pj)#*I>JI})ea@WJ%JkRMjQ}a14FYyFvt>nZd-|F|5%4GIx3B4u<=xoi3?RLs%6gmwy zN(%A&2WjXh&@eaVusZ@9iXSA*VdW8Q*^)bs(OFL4&(jU49_>QC1b<09l6jaZ{M_Y#0dN-p A3IG5A literal 0 HcmV?d00001 diff --git a/docs/img/object_specialization_before.png b/docs/img/object_specialization_before.png new file mode 100644 index 0000000000000000000000000000000000000000..5921670338a0e7b930e610ffe88fc068a23b4ac0 GIT binary patch literal 79894 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

)g==k~l9wA)_ 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�aSr$Q_bYv9Y@7x0$Bed2|4MihK=xs;;zLF} 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 Gd;UKSLT&c| literal 0 HcmV?d00001 From 1d785e18665777db82ec6b75fb484cde9d94a283 Mon Sep 17 00:00:00 2001 From: Jason Williams Date: Thu, 25 Jun 2020 18:01:09 +0100 Subject: [PATCH 3/4] blurb about object specialization --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f065dcb696..972922608bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,17 @@ # CHANGELOG -# [# 0.9.0 (2020-06-25) - Move to Organisation, 50% faster execution time](https://github.com/boa-dev/boa/compare/v0.8.0...v0.9.0) +# [# 0.9.0 (2020-06-25) - Move to Organisation, 65% faster execution time](https://github.com/boa-dev/boa/compare/v0.8.0...v0.9.0) - First Rust project (outside of the compiler itself) to use measureme - optimised type comparisons - More benchmarks to help us understand where performance gains can be made - 50% faster start up time to v0.8 +Boa became the first Rust project to make use of measureme, this was only used by Rust itself to profile the compiler. Luckily the framework is in a good enough state to be used by other projects too, and we gave it a try. + +The headline feature this release is the Object Specialization @HalidOdat worked on, this makes it easier to use Rust primitives instead of going back and forth between JS values and Rust values. +You can see below the biggest slow down was setting properties on `JSValues`. By specializing some of our built-in objects we can bypass that entirely, the after image shows the result! + ## Before ![Before](./docs/img/object_specialization_before.png) From f09313f94304fa29ea9aa0ba1d9e7a2b3c3b6054 Mon Sep 17 00:00:00 2001 From: Jason Williams Date: Tue, 30 Jun 2020 19:10:56 +0100 Subject: [PATCH 4/4] internal improvements --- CHANGELOG.md | 50 +++++++++++++++----------------------------------- 1 file changed, 15 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 972922608bd..3e3873e18ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,32 +2,8 @@ # [# 0.9.0 (2020-06-25) - Move to Organisation, 65% faster execution time](https://github.com/boa-dev/boa/compare/v0.8.0...v0.9.0) -- First Rust project (outside of the compiler itself) to use measureme -- optimised type comparisons -- More benchmarks to help us understand where performance gains can be made -- 50% faster start up time to v0.8 - -Boa became the first Rust project to make use of measureme, this was only used by Rust itself to profile the compiler. Luckily the framework is in a good enough state to be used by other projects too, and we gave it a try. - -The headline feature this release is the Object Specialization @HalidOdat worked on, this makes it easier to use Rust primitives instead of going back and forth between JS values and Rust values. -You can see below the biggest slow down was setting properties on `JSValues`. By specializing some of our built-in objects we can bypass that entirely, the after image shows the result! - -## Before - -![Before](./docs/img/object_specialization_before.png) - -## After - -![Before](./docs/img/object_specialization_after.png) - Feature Enhancements: -- [FEATURE #419](https://github.com/boa-dev/boa/pull/419): - Object specialization (fast paths for many objects) (@HalidOdat) -- [FEATURE #392](https://github.com/boa-dev/boa/pull/392): - Execution and Node modulization (@Razican) -- [FEATURE #465](https://github.com/boa-dev/boa/issues/465): - Refactoring Value (decouple `Gc` from `Value`) (@HalidOdat) - [FEATURE #414](https://github.com/boa-dev/boa/issues/414): Implement `Number` object constants (@Lan2u) (@HalidOdat) - [FEATURE #345](https://github.com/boa-dev/boa/issues/345): @@ -40,18 +16,12 @@ Feature Enhancements: Specification compliant `ToString` (`to_string`) (@HalidOdat) - [FEATURE #442](https://github.com/boa-dev/boa/pull/442): Added `TypeError` implementation (@HalidOdat) -- [FEATURE #296](https://github.com/boa-dev/boa/issues/296): - using measureme for profiling the interpreter (@jasonwilliams) - [FEATURE #450](https://github.com/boa-dev/boa/pull/450): Specification compliant `ToBigInt` (`to_bigint`) (@HalidOdat) -- [FEATURE #422](https://github.com/boa-dev/boa/pull/422): - Move AST Nodes into their own files, dividing the run function (@Lan2u) (@Razican) - [FEATURE #455](https://github.com/boa-dev/boa/pull/455): TemplateLiteral Basic lexer implementation (@croraf) - [FEATURE #447](https://github.com/boa-dev/boa/issues/447): parseInt, parseFloat implementation (@Lan2u) -- [FEATURE #435](https://github.com/boa-dev/boa/issues/435): - Optimize type comparisons (@Lan2u) - [FEATURE #468](https://github.com/boa-dev/boa/pull/468): Add BigInt.asIntN() and BigInt.asUintN() functions (@Tropid) - [FEATURE #428](https://github.com/boa-dev/boa/issues/428): @@ -98,15 +68,25 @@ Bug Fixes: - [BUG #511](https://github.com/boa-dev/boa/issues/511): [Call] Usage of "this" in methods is not supported (@jasonwilliams) -Tidy Up & House Keeping: +Internal Improvements -- [TIDY #416](https://github.com/boa-dev/boa/pull/416) & [TIDY #423](https://github.com/boa-dev/boa/commit/c8218dd91ef3181e048e7a2659a4fbf8d53c7174): +- [INTERNAL #435](https://github.com/boa-dev/boa/issues/435): + Optimize type comparisons (@Lan2u) +- [INTERNAL #296](https://github.com/boa-dev/boa/issues/296): + using measureme for profiling the interpreter (@jasonwilliams) +- [INTERNAL #419](https://github.com/boa-dev/boa/pull/419): + Object specialization (fast paths for many objects) (@HalidOdat) +- [INTERNAL #392](https://github.com/boa-dev/boa/pull/392): + Execution and Node modulization (@Razican) +- [INTERNAL #465](https://github.com/boa-dev/boa/issues/465): + Refactoring Value (decouple `Gc` from `Value`) (@HalidOdat) +- [INTERNAL #416](https://github.com/boa-dev/boa/pull/416) & [INTERNAL #423](https://github.com/boa-dev/boa/commit/c8218dd91ef3181e048e7a2659a4fbf8d53c7174): Update links to boa-dev (@pedropaulosuzuki) -- [TIDY #378](https://github.com/boa-dev/boa/issues/378): +- [INTERNAL #378](https://github.com/boa-dev/boa/issues/378): Code Coverage! (@Lan2u) -- [TIDY #431](https://github.com/boa-dev/boa/pull/431): +- [INTERNAL #431](https://github.com/boa-dev/boa/pull/431): Updates to PR Benchmarks (@Razican) -- [TIDY #427 #429 #430](https://github.com/boa-dev/boa/commit/64dbf13afd15f12f958daa87a3d236dc9af1a9aa): +- [INTERNAL #427 #429 #430](https://github.com/boa-dev/boa/commit/64dbf13afd15f12f958daa87a3d236dc9af1a9aa): Added new benchmarks (@Razican) # [# 0.8.0 (2020-05-23) - BigInt, Modularized Parser, Faster Hashing](https://github.com/boa-dev/boa/compare/v0.7.0...v0.8.0)