From 3049f405f5de538daf212a5263a8535ec40b3e9f Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Tue, 10 Dec 2024 18:50:22 -0800 Subject: [PATCH] Reapply "More aggressive using of cache on engine settings changes" (#4736) * Reapply "More aggressive using of cache on engine settings changes (#4691)" (#4729) This reverts commit 3f1f40eeba939ace9226fec8e911f4f68dd258ff. * Add a utility to get all the current values from the settings object * Use an XState selector to get the latest settings snapshot for WASM --------- Co-authored-by: Frank Noirot --- e2e/playwright/snapshot-tests.spec.ts | 70 ++- ...-via-command-bar-1-Google-Chrome-linux.png | Bin 0 -> 52997 bytes ...-via-command-bar-1-Google-Chrome-win32.png | Bin 0 -> 55674 bytes ...ld-be-stable--XZ-1-Google-Chrome-win32.png | Bin 41337 -> 41298 bytes src/components/LspProvider.tsx | 10 +- src/components/SettingsAuthProvider.tsx | 58 +- src/editor/plugins/lsp/types.ts | 3 - src/editor/plugins/lsp/worker.ts | 13 +- src/hooks/useSetupEngineManager.ts | 5 +- src/lang/modifyAst/addEdgeTreatment.test.ts | 1 - src/lang/std/artifactGraph.test.ts | 1 - src/lang/std/engineConnection.ts | 35 +- src/lang/wasm.ts | 36 +- src/lib/settings/settingsUtils.test.ts | 46 ++ src/lib/settings/settingsUtils.ts | 21 + src/lib/testHelpers.ts | 3 - src/machines/settingsMachine.ts | 10 +- src/wasm-lib/kcl/src/engine/mod.rs | 63 ++- src/wasm-lib/kcl/src/execution/cache.rs | 50 ++ src/wasm-lib/kcl/src/execution/mod.rs | 512 +++++++++++++++--- src/wasm-lib/kcl/src/lib.rs | 11 +- src/wasm-lib/kcl/src/lsp/kcl/mod.rs | 7 +- src/wasm-lib/kcl/src/parsing/ast/cache.rs | 373 ------------- src/wasm-lib/kcl/src/parsing/ast/mod.rs | 1 - src/wasm-lib/kcl/src/test_server.rs | 6 +- src/wasm-lib/src/wasm.rs | 39 +- src/wasm-lib/tests/executor/cache.rs | 216 ++++++++ src/wasm-lib/tests/executor/main.rs | 11 +- ...hange_grid_visualizes_grid_off_to_on_0.png | Bin 0 -> 47712 bytes ...hange_grid_visualizes_grid_off_to_on_1.png | Bin 0 -> 116507 bytes ...hange_grid_visualizes_grid_on_to_off_0.png | Bin 0 -> 116511 bytes ...hange_grid_visualizes_grid_on_to_off_1.png | Bin 0 -> 47712 bytes ...hange_highlight_edges_changes_visual_0.png | Bin 0 -> 47712 bytes ...hange_highlight_edges_changes_visual_1.png | Bin 0 -> 35533 bytes .../cache_change_units_changes_output_0.png | Bin 0 -> 54577 bytes .../cache_change_units_changes_output_1.png | Bin 0 -> 47712 bytes 36 files changed, 976 insertions(+), 625 deletions(-) create mode 100644 e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-linux.png create mode 100644 e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-win32.png create mode 100644 src/wasm-lib/kcl/src/execution/cache.rs delete mode 100644 src/wasm-lib/kcl/src/parsing/ast/cache.rs create mode 100644 src/wasm-lib/tests/executor/cache.rs create mode 100644 src/wasm-lib/tests/executor/outputs/cache_change_grid_visualizes_grid_off_to_on_0.png create mode 100644 src/wasm-lib/tests/executor/outputs/cache_change_grid_visualizes_grid_off_to_on_1.png create mode 100644 src/wasm-lib/tests/executor/outputs/cache_change_grid_visualizes_grid_on_to_off_0.png create mode 100644 src/wasm-lib/tests/executor/outputs/cache_change_grid_visualizes_grid_on_to_off_1.png create mode 100644 src/wasm-lib/tests/executor/outputs/cache_change_highlight_edges_changes_visual_0.png create mode 100644 src/wasm-lib/tests/executor/outputs/cache_change_highlight_edges_changes_visual_1.png create mode 100644 src/wasm-lib/tests/executor/outputs/cache_change_units_changes_output_0.png create mode 100644 src/wasm-lib/tests/executor/outputs/cache_change_units_changes_output_1.png diff --git a/e2e/playwright/snapshot-tests.spec.ts b/e2e/playwright/snapshot-tests.spec.ts index c1f6ed89b..8dcc8a601 100644 --- a/e2e/playwright/snapshot-tests.spec.ts +++ b/e2e/playwright/snapshot-tests.spec.ts @@ -950,7 +950,75 @@ test( test.describe('Grid visibility', { tag: '@snapshot' }, () => { // FIXME: Skip on macos its being weird. - test.skip(process.platform === 'darwin', 'Skip on macos') + // test.skip(process.platform === 'darwin', 'Skip on macos') + + test('Grid turned off to on via command bar', async ({ page }) => { + const u = await getUtils(page) + const stream = page.getByTestId('stream') + const mask = [ + page.locator('#app-header'), + page.locator('#sidebar-top-ribbon'), + page.locator('#sidebar-bottom-ribbon'), + ] + + await page.setViewportSize({ width: 1200, height: 500 }) + await page.goto('/') + await u.waitForAuthSkipAppStart() + + await u.openDebugPanel() + // wait for execution done + await expect( + page.locator('[data-message-type="execution-done"]') + ).toHaveCount(1) + await u.closeDebugPanel() + await u.closeKclCodePanel() + // TODO: Find a way to truly know that the objects have finished + // rendering, because an execution-done message is not sufficient. + await page.waitForTimeout(1000) + + // Open the command bar. + await page + .getByRole('button', { name: 'Commands', exact: false }) + .or(page.getByRole('button', { name: '⌘K' })) + .click() + const commandName = 'show scale grid' + const commandOption = page.getByRole('option', { + name: commandName, + exact: false, + }) + const cmdSearchBar = page.getByPlaceholder('Search commands') + // This selector changes after we set the setting + await cmdSearchBar.fill(commandName) + await expect(commandOption).toBeVisible() + await commandOption.click() + + const toggleInput = page.getByPlaceholder('Off') + await expect(toggleInput).toBeVisible() + await expect(toggleInput).toBeFocused() + + // Select On + await page.keyboard.press('ArrowDown') + await expect(page.getByRole('option', { name: 'Off' })).toHaveAttribute( + 'data-headlessui-state', + 'active selected' + ) + await page.keyboard.press('ArrowUp') + await expect(page.getByRole('option', { name: 'On' })).toHaveAttribute( + 'data-headlessui-state', + 'active' + ) + await page.keyboard.press('Enter') + + // Check the toast appeared + await expect( + page.getByText(`Set show scale grid to "true" as a user default`) + ).toBeVisible() + + await expect(stream).toHaveScreenshot({ + maxDiffPixels: 100, + mask, + }) + }) test('Grid turned off', async ({ page }) => { const u = await getUtils(page) diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Grid-visibility-Grid-turned-off-to-on-via-command-bar-1-Google-Chrome-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..016d3c74c7112370383758be962f55d588c8dc90 GIT binary patch literal 52997 zcmeFZ3JTH)NK1=^NXd{QAt{K2v~&*LsfaL02uL%efHa77*B~M-UDDm% z?;fAuIq$!4J{&*j=nVJlz1LdTy4JPU7NMdni-$vr13?g;+zY8!5OlKyf-nwlV}gIl z`2JiP{DI;0N>&mo>Y-kRAbLnn>e*}e6mxWq zcWx~?AO*S=C%!uPDp3n7r(|0qpDHE7wiIBNIZA^)b}Z4BDI&JS6LRCuPvoMVeQ76b zeS1Y-QZ5fEQG3M&>XkLMa7hy1#`xqMeiKGKH`z-U)V|@l8K{RmzkP72c-8cN$OU6g zYNUGWyyiZuGFTz_rQ*SqPx9YO$U2Sw=D(NURM>7~{CmYtiX-{&g+ET3?w3zfgq`6Czrb^7K9`VB&ON!-Q4pAPFESzL}+~koewxgEANi#6}Lh&oCe_ z54Ow|m&9Y{!Ua~4;VuGq!GTn`z!RFVn0YhJGU1w;6N{BFatL~iQR$`Yi^$CjVa|j~ zFu?liB-Pa!9BX+jNFhUlwY4>djQ)Prd=d=*Cq~wGc5X1F(fh^yQ$?0&`K*xkjQC)v zgeH`yr&=m-Y;iRuy|WRJ;{hb&s^>M>Jr zf}qw?t-JgWBu@V(+g(C5l3=HDv8D_mJyM0rH=$p_eaxBb>+6pmJ!&^9O;3NjkH-dm z36u0b3Q>+4R5y2F0rBVQXh`RflNk2-hYi@M3Kz%d^KX`kRM<$2FU-aS55gI4LZhuu z5<-U_LK62&)97^#42la2@6nM%@OSs_En3OQ{qbUosEu?F8@hu5Ng(VIRSUa+9FV#4 zx<+sENicye9%e%J$gpRbTsDm0VQMwCwTP9uQEBvX?7atuD&iG%(~pWxTDXLDD5Lk# zDr3UPPI#}N2kZeC06+Ld2O+U;8FjrJ2Hb!iWKK#0Wbz6&q#_xtm=%#D1-4=MgV}G zzhkEPcN_;qDLZgk$bY~B$9a8HR8WvfE(C3BkLpbPS+AM%>6y!^8BVnvE)HZVsH>|-h@E|Foqha36e0}2N9v-g zNmCIvx%mG3jkbf7xW+xyk;irWGnVM`#g z)5I7d64kXBDm#6UEm(gt_o>||GPvPL)`abw?mZ#a|5reY?;YY4&Rw*M%VN! z$?C8fIDcVtr`mM{PV#ag+VuSuI4v`$$QciC2**KwCqZL2uKUeiTh+^~;-{TUe!lZm zGbg9Lepid!eq(_?vQVwTI0fJML&k>;|Ad=4fXD^4O=cY_@FrTx7mwso1g#?a0 zLd&70#EV!^Y^PZUu|jQfSli|ZZM3}#9@NBT5`Ckv?Z?T+pK@7yQEY!rn{~&XKWZ<1 z_LFA3_c~dpw!+$tZ``;M`GN_lZ0FmJw$WhDOTU9mx~XyLoBn$8>gq_R{4xMa#E)e{ zDb0UlLX(EI$3YFp_1iw{Iy0W&2*NBgjwhXZdwq|}x_i-QlE z(fRw^*tdyA+*=d>JQJQeq5jf@F_t-Yk;?6?gq0f7FAcbL1AQ_no@=>9MO^buh;F z@JDWLSj4z?!DCk7GhsX^p*RZ{0fBz%0?VjYL_2wbGT<6;?B&T-oYlIbM9$Y` zxAF%8&^in2gv7PZ(3bHGw60~Ms0u#bq`P$cFrT2$^sRd?>vVEHGhsSmA@qJ7IYltL+!@}_^%a}cS5 ztw%dSb)2dyctZ)ZF{VjL z-$W}&CC)0R;8>!w49|B0n5SbHN;EdP<(ct5gF_pM4}GbnA^!lcJb!t$@Ur1@(=Juq z&)3LkZer%@$T&iD$r;uyM*tO&hqeE6uFA(}@6h2r@gv~cs+Ubmu}Vfw+jMX#MHQ+}vD__~q)>)|M=t&%xFC_VtFjxUh(b zjdlfOct38!6m7W@J$RhL@>e!_7k&WKP3vRupdF{w^GWiCoj~!kOz|gq%}Yy5H?Z+3 zbYiI}DYLV)#g0lNz%mWaE|$gZ99tmz#Ec%9d1K2x`Ddu^@8epXUbGY%vR5cnl2QsXu@Q9oHSpWlW` zsH*e;ELxepiXuZ}(61?1;SWj3ci<~aOL-Vzt{bBOd-v(Cc7lwJjS*5UznL(ajCS2G zifX?J{qeps%~wO4*r9gvKO@cKzg1G|-ktBr&&%7YSuaXYPuJzDY-oTh!yy%xkPuIG z)}$$QJ2WfVIdf(ZC7djFI-Z>T+|~z}o6acwS(Q-g8v5MFM;csvMUVds4=XDwzSh(f zKU>K(GrJ8fw#+v-9{{-XpV(wzU=9N`a&jF1<1Y$^$e$Y<8$QQVf_!`jSI3QwSy_wL z2Iq-F)gbv9N=sM6s2U0JgPuFe8u_Ngo4J76#Gbc~g%n4l^w1fmQ~;0=D#6__BzWuR zcfH>$etoguE1TIL7#L_&>VB}&zq`9TG^9RneRh7{t#}VzrNEmP9ZC8(HVOcmG;Nhk zF=wWpw6Tg^?MC?Relh@y36;rA%)a-jJw5$FCgsM~*3}$&;|X~8qO^mSSLiK7C^vpF zv$63;PTL}?);T;7*w0h}ComC#6Y|{x98rm|O(i`wEv;{_*YtiS-Q`L?;MOx2-7|dr z{P!aS`T2d$22;_w*6*a1u3=ep`#vqL0Iv>IqR2=vammvAo?<2Q=o0XX@-GO5J1jT=u%@M2V6=}>VE2v=t zn0kv&nK-*+kI>j&+ZrD9%j8Kyug{j#%;lDw_+jo#z;?0eydP7BB}P+0UuYtz)}=9^ zUx^*_!$J>3Ug_DoumgYFsG{eS%Iue=_4xXy6OuT6^+k$Lte;wh8mEGV+=1#gltvx6 z05A(s2MV3J0l-%&cDm?^>MM#a!*C|dBM;3*YdOguaG@#@ns zLMW}kUWaXzUDZKAK&e2Yz|ch!SP;EN8mH<$rkfC(FsdDpDGWndH1Oj8?rC6>+lOnC zIIub(o)$d-#+UqO{MCc^LkUn5{Jo$PRC1$V>u!JyIL7-h@STk4ss;OdLU3CwvWI0( z*$BonwH68>+YlG4_5a%D4oFF(7{-psiN)_QA_%IAoLHPoM#sA_I@eUlF+>Fy%FL65 zst3I<)L6a&aN~9-P21*f_1hjYG_!RjLGSQJ(s7C&{4V7!h>a0tdVlj7H2N@U=nhy~ zI*IB%oi4UdQUaCv(`()k#Gb;lmarNm{WYf9!12PmGdls|ik>pAYL_rYZ3jcBkiA3M;$XSEh7rG zk;IThU^I{*qKA!3DM~YjIssuU3rK%5bK2wf`}a-A74P4nJmMmk3B_!(MKhbxQpKh3 zOq@b`N-#ILNLyCeTQ{J{Byy74FtfKA#i6;bE8X1~41bzWD5D&}LHZttX`vnV^Ta$) zct|-g)2Pqm*I1A%M-t+N&Di|i7iZ=84+aH4P62?mi0WE>pb^}wUkbR$|2}8q)c37p zzH_0V2MbF3&Vv%6t?ZFg{jz3-uCJ%Co|{63%cEBRVr$F!9Jm~$)vWd90g>u*gDFaCp5Eq4U6b72AQ(t)7x)%p$+OsY-<_H722{> zsNDcG7#R}fWJXr`z>iFU0RdU6CHVLY(6Lc!zBSj{?_>7>>4d)N(nfggf4>WO+~_rU z{xjAA^Z8|_iUo(RHsr(!D<~4JCWohnSR=)#k{)On4xp=?rmX{y;il<}SPJG4|8LCQL-SCj1jUcRlU(HC zO_)$g$i!j`x_~7?(@Oz|UsChN|HTWaB-#5Lii}}y5n-3Xa=8D_;NQ>tfKneF?GWUO zW?c43OziTn|8y?xouHF*8gbwPd~VC)fEkevV!0AchbP4{p9cdRgJM4~(i53}zmKlC z_3onI;nGmyRUlr4=LA$qQI7xtF5Nk=KbIx5jVW6jc;1GF`weWU@}(-Nw5ka0zv_3+ zLj=z7O8s>JWRG^3Cfh-TGd~IQ!%b)Y)enQ9xR#o&*eVi3{3z`&YYS-$(O|s^)&5&J zBUOM*00kegEk;i@kP(`;TtB_v5x?FS7YF%JVIa)lXs4CHZ}E}A=`YQOy=DU6zTXE> z+J>B^(dv>R0nm2T3x z>$Tyt?UlN_iy&dOva$jM^v=H8Eq_N7XRt^KCR99i8#sBkcRJ3uQ+>}?34C_~I5{~1 z!>rtHIET+S&zu#`jGyrX-k6$jA5-FuPN(A7*IPM*vUMnQoex)H9VqOX?Q!T4g$t^x zsuuk_FL>qjbNAVnKy;2HMu_aTk)UbOedEEw5l-d!#+mDb!Ixmu*JTM~m=a^E zq|AkEw1Q}N)RIso%~yl`r#8tHWbnGWy6DdOf@pmX`Uybt229lNYT2)$uCDG7_rmvj zq~WN%qC!A724cq_eC^V_S>RCX{U~39^#)}B$jdlI|F~hkZ5@S5F&?M`GD6c(Bb06I=onpkY=mln3}y45*sG)}e14->I20s;h;DVojI?cIUns1Ls9V3#+iCpSOf>7P$;mp2fR*L z{@*k56Zm+hRvoo~i%4YIdtAVXGVdWYil=5~ZnUalG+|Dx5jyq=io-1}Ptgemy{~nH z>oc@op`6pLNC3HF0IOKG&pXuWaiQ7wH+p%>)(dnsnosWysFu^k2_Uc$=4Edf9AQX< zlNR#nv*F5yg8>Bsv6H{;pU4qxab5Qf0*>e24$$P-bE&f|u5WdP>dG>muepe56K!`fTv4hP;|UgvnS1Ast^0wN@iw8E!@VHLNa*s^77`|U7}O`p1Y_!_)M8;4=VJzy`{`t zF8gb-NA_t5RzEx1q+=XZpu84NF%#*bGbP|RpX`KEter95TX*&K@SvwS^V9c!7p#%z zI;%quk6t7*8V4~}sC)}L3fFVzzv=G?N~jjww{K!e5L2+VzkgQM-nzABArM0sd2$b& zGp??#Iu%F~vty1DDjU?c=|pIe37uaDvhYgfSl2c;^%PkKEz2YcRn2A1*^y5eKd3rz zz{sXSDj@0q`7@Z>j@^UwIU5B-Mw@rb*JW0Q;t?vi9o_x=Ja&&I>U$@~s_hmof-Q-@ zH8eCF_cf;*Tx9(E@qKvS+QM#|f`a0y+g9=$9!0ZIimA;BdJunTyG9{;Q=+wAemiaI ztF}bA8U*cV3fFp0PJb%njm($ZhjDV!*dk(VoE;+J6i#m#V3`v1C1&|4!R?BhFK^bvV#laIV`D;g<8IHSR?Evj z9#x#$pz3DaJ#7n1`RkUPnaIg(vZeZ$c|#Z}_5vq5xEpLEjfw{2eY!mz3vuNgSZrPqS!L)tiqe_oS z{fvwZ-SVe^KR>qt^~m=jOQ=adjZI!#RRr#)5=$PNp^;Oj7g`ELzPLjexowa=8`Q+vO z)7910*x1;>z+1eM6r|FTxPcP%pA!Wig=AYYGBP%L&J_*X!F+a4m+u?bnkuAp%r|36 zLTo}wrQVYEufL>0UL=Eme!rhkZyhZXDobzB5^-63-LxDgQ^Xcxw5HSAkaD@qo!od; z`ig7taU#`&YD-6>-*va>VVOPQJyu56LQeVowNvn(Hp+R{vXLW$Ld#Qc<^5X$xVX4O zOUb!Eg)~XC%E|^;UClMWv+xh_Do)jg%KTK}>Btch8>vm<}xu=%`?N26nTo;g|4GGYY$*k7y zShjm-u3||gX{dTqyRfK|kMH6LQ7f7d!@JB~z(Z0T)L@vV53k`9gHIE_cur3kEW@Ca z8Lv7A+9<5VcgjWzg*NcJKd^l5aYpKmNElzlTyt|QPB(K7dtbpP=EYaTn1kXxti#yjJVU<)Io$&K+>b*_MG{WlAcU0Ar;Zg4g5hfwOz zzyR^5_Px`(v3FnD<(hV07LU|o%Y?!mpHiCzsi^a(_F^k-^;#!Z{BSO>%<0%*L!7py zKMzv0m9kD0;1S!he~OJ2E|i>o{eCN%!?+Ff7^k_CZr+AW!&aqWrI@Pks=|VU?-ll} zvV^MrndWzQGgj}8;MP~s(0swZIK_iP1V3do&e7J%hp|PLe6nobw3r z^Em~nFZoX%zP{r=iP!cp6ZQ2;@<$w~mJF0`Y|PTCMx|O$sbfvwTr}lvu5WJg3&3ba z+)IE;T~1*vkkq@b#K~2^8)nDEJJTkFnM56_I#e{#Y8>GTOo zFp<(|tf6#kYoRlmb@^o?W!JLxQ;&g3LKG7%gOv^6u7u?Lkh-R(+u4Do-iQlQA-le0 z)3vs?h>P&ENB^Xb0#}Y2&dswk&yJ36B+`pD6z_vqt}Q-fitdVk`K&BOtj3%z|NGgb zGKaN`{0NW02+i&v@g^#nrVTH*+vX z{@RZ12x(QvB7IjCe zi}LcuN?)yhi9hNY7>JtKOhF>~z25il4dtr~Bz^y3QFmJ@B)(6NKv6G`4|J2XHltl~CQB}gwLuSLdBTf}7#4)`SCZ3_ zkVfB=pEYeVtSFc0hz#R`yyD}(3+<}=dCwT;hzIZUpRJi^b0?9TM)xi&WWDlY`3%+{ z)y4$hGf@s`!aq##O(T$ zz2NS7&%bSkT7yM;yuX6F=Z}a6Nrw(d44|}ue+M`Lm^nwsv&zfv!ae~lQ$}_+i(J&r4O%{YEXAx>*{-Yte*Wd< zoeG>bdf5 z*Np&$g{jszEJhN(Ce74#nLRN}CMoMYvF=_f??>#ya^{PSWs~yr>#e0VuyU@1bf5i` z_~M!7wg{ltUuYEX(@;`+7QPfc-zf7tuk_Q&_yQS@fTn%-vnW%cY6};3DJedC8-E@F z(CpF&gjvzCCb_=eNBn&3r4r5$b$UYkYTfu&@>}+q}x9V6_RFFvdV(>@g?Ch0s zhcXg&7(gdtZdG7A{`A9RbSvk}bkEi@4VWM3WKBi4;UnyJ7ouNYq3kYD23Ly)iLp%3 z1`Dxe*{&SYrg^EN&`GSl%wY<3=p|em?q0WSo>>|bI!5G@yQXs8bkH_>mRD`3g_mw< zv2hWctEPwtW3+qTx-|N-j4H}C$cLYG4*NvAVoQwk9%^)LEze&)Gn5Ar9i?3UBk&e= zw&qVuwK$f=&x*ef#1G3S*J2b%up{sa5(bxNtW>)dWirzf$7^eAtz7CgMi2^ZoI09| zXl>F8Ed#%axdCmcS2|fzQBz;+kO6&X=3+@uM@Q#+t@!HKhr1Yt#}8AVW%@QY0zXq9 zO86P-Z?B}JlGDIIKJhLPYg~>53|ruu17DXIsD2;H>YTS%)7{#_as-( zMgmnmMaXFht;6AR*Xa#5 zq}_H83Huu^r!q4$F~`ZJoWC_*?@cDhYtft^?Iw;Zrb|e+2-P)oTD)$mL?wJRsO33Z zvtJjsDX!ND3N`Rb*%(h;u*W%RpfFC5d{7^iZ)YQ~S6{=A&0BB}$7x@#y4uCJ|6plI zJN+>~zsrHebuSs2fZq~}kDImj)$c!l`me48U0kaMR-MKQ9=?Sm6r>jR_*SIu^Rtw8 z*PfcXC^A4BM#5aTds9TcfTr&hh2bv>PDP7@4D|cb4H}Z32y9iR0QigAT0XGDs)OiRV7a%CdHL5s4ZVONLS4t<>H}OZOzD1ayY# zkEd%t>pu1+Tk>%W1tX6?ZY5%2g(J_$_OsioZ-F)xq_$Z_PfblN;xN~SM*vKNrOp89 zW|9!`#4yD~22>&AtAy8yS$nGOd@ezvbPPBiSm_EZ#Jg{dOZey#>5@vFS5%acLhL62s)KCvx{FRG}=CO6=DpMbk&K; z`>KT3hWHWl`{b8AJ>kjbji4T+FnQTXJmsz#Q(V4sMvLwRPR)DB@FQsRvnnT3P*YE8 zUsX@R=K~Z`2k-Ep5}h`qQhS}JgtvcpGv5p{3q3qMI=l4cucuB(cvB0fYgFpyNB_aESv2{fMBL z7}sABtmo#kvPSy4Gaw)GM-r0vymk936*D|%Db&4uh(NRpy<{TB4^mTniW)sRahEj@ zinm9VegMG56&Gx$GWY|r>mZj0b1j&eb-o>3h2UYqMvGdCuM^)trj59sXuO>al7i^Y`=*ZG`NCHh;0E%8hQ~ma`gEK2K`z`K51}L2MGAl1^vQ&%#*- zl3g>2!5>{}ap5$gMyTq@;@EEMOpWqe4q{P9q-ld`r1y+;& zQ2rHzUW))I2+D=)O$hY%&HawdWg}>PI)tZHGk~z>_8-kqWuqV^I{*a#O6FRTiJ>6l zF+Oc*@VJ4jl-_wws4p_!?GzO*hVhR5L$;-BZ54lMVm2oimw=!k?x&}sqEk~-oE*s+ zY=M&LrRl0#RWF$4oS#O}2(z#-0R6)s64tpX&c|osy)z5i1L)Z^gX=>BI&t4g_l0KA zegJLzvyHOe#LpldO4`JXvPX6=?hPcM6!fdw%ts6DLP^{lIm_7jQfmN8s6R7E<7RNC4WPF6V zK;w*`=Z?ErDjh8?8DY=k$B#=u?C$mW1oQ%ty8JX1vw{OF;F+=4SBmc(IfF~IOol>A zgI3nof%iU~dh46KjB*m==O6O>aebP4rKKn(tx85lhJ}SC^RWkkpg>4zi?{%VDYct} zlQV&)N6RGrwk|V16qC(YnP_HahL+GpMX*56O`gG4KrAbte09MCDJ~J z*eWV1e*4z*EHBRn-p*62KnS-R9L7m-mY=JMzY`SZm^Qo#hMkR+D<1zD88QAM-T5$t zVPgT&9V{S6Y%g#*9E@KpN_ac?be%o}432ac9c^sai_IZlLiN?`C^F)GlG1O&geT?U zMP!9lhhf>~ZzO<^DSzGt1^FOK@ z$E9R5Z>_*WaW^b13=ujyFp!a#_xDz^ez72Oe4a*&G3Atz5n z7vp+oXxkrRncV(Q08VM#8hKLnPOsWkzu&1zT$SpGzza1<)a_if?CQ*4H)~LLf+3ZZ z_D=W7U;KSjT<&t%>1?I6vHJb@)=yF#%myW(jSMHeHi_zQo<2iTrYQ{YB6sOM2!IMf2gsaaVNT0OV3HW-fHI=?IxR@g!VMsiG-cx+swuR&wSjs&+2jZ*R;@Ybc0-x6bS0GB@?E<1X_S5wq})7 zn77t#=UaBa*H3MzygZaAXR5(&M(ph~J+9+l@)`@39-9^)`kDi<+hzW=c_*Q4KYbN_ zz=NWwJ)ZV@$vWfRYTm80Zc#Z=cw%b>7{9%Wrrxz@DVv@!v$TX%r8>T@si zz5a`k$uW2I6(dG`S+KP0JZVtAi?6J#Wcndgn}@+MO1W`WiM%Hn6q9DDr4_l=)zv`v z`i;vSPiy(; zJBdZXz_k*n%OR5c0Wx}9#EnC6Tie6)%e=f04q9g!Ks^-{G^0De#-CEloVtDWqo<9a z+MWm4MH^x6>#M(mB`L%Pq?X8MPBx6Ov4bDlO+&K=9s*fY5yuC;u+uhg9j~Mk5=^1x zd=E|-$)>Qqp^3ZJz%BI;AglZts;n$OEF|yfP^hle!f$wD^jb0Q9>h*amUTnoj+~&b z`V)CYqr8c+pDW|d)^7Ir={&**!5x=6K?GdIh1VA?UCb{$CMXvre2nL_b{*ahQig2{ zl77w{sY%1^(c-NV-I8K>z%W3j9HiE@x%>QfSmojBYwevhRUo4e6c!e~50GIbl2s}! zd4n#W)Hq`Ap1k?BN(F)X{b!m3tbCAiP*){Q;$d@Jk(#3U5ECr z<^9-#%R#>G^+WhPuEIlN1Ruh7n5ciw`$^^ZfuRvK(i7uhzRisV<~{dm-xWjaSpm5B zjQgdt&<#*Q3bc$3tvBwW$|)eoO>*T{R$kt(MaMClip53KNC%82Nz|roW$n!X8K7TZ z`uaJWv2a#IEI113XlqMtY4ZK}@q>d??_T3q22vb^0k^hlXpQEM2r2mxbm%!P*Q^ice-ikcd$>4bj4 zpUe9Rie?@j)mj`O2+-4x8nqG;@Ey^sFm#$YwHCgjFizgK2?{gTJ3hY*&^wRG&+W7b zjZaH@gF@wG%AT{bau+V~8@;dCxi6mKLqo%D;O>zlo-e$7=-JLa^&^kd^4`Cce#=d2 z|FrG|{{d0A;!8R)M|W3Ojo&Yr0|&mVIL}0XP+jA ztK}#!@;+i*mc7XxgL4xzd4EOmwTViPhk`C>`^5T4WKR7s;-R7l-hldwiuy%av9rAgQrYoqmfyYzI zgv1>%ft}rhBnKc&NXslF1JwxdqUo{R=&H`-WG8-ur%qRr0aLryIm$J|pNbB{)K!J! zD}I5yA{|o_bu5Kaay7Grn&6U+|Es9@dj(fT7!u#K_)sqJji72g)|V*f1IVaJ8!Bb@iEE!Bfc99e!*4CEdx(Mm>g7lNSn-OlJQ=rSt{!<#cprW99~ zR*mXhXln8=slozL$%>-EU$zZG-*F+ta*KzWoPp!#y+XCsZKghFbI4;j%BRtj6`ekf z+0fPKb2iG<%S0=SsE?>!ghQsFg+7(J^>WL~gA+<`ga@!4i%@S``$V9qM*13G8M$>-SF^;v)^=$CfI8EmbLtxI2BNs{ceT4#3@ zS_o+QTsbu~HFXBE_fNfZU(0(>;%pF7J~!pKgM7gR6Bcgo;K#Z8_z|nwfnQ01iMZZ} zs)HCO{{<-HadGqVKDN%vH2URSPp%M#j9uP_?%|`A{=ROvir?LMas!fVqe_$2mrl2Z z^Yf-X=A@=kGTAI`lLRy4H#XKbJJ;8(*!851s3=3rU7UaGCXfk)Iy}k`|5#jH{4!^7 zZeIHlQdwspSB#e#X6@ZQg!si%wZ{6N}LNg<<43w;ed< z&PIw8)S6#Cq_r^IAI1o~NjCx94i`W3Q288)uPhf5L zm^+EX#F@m@7}mx{gkZ2lB43u2o^RI{*ODBb>Ko~^AHjW)n(@R3kCerjGE$C?9vPFj zk7VG6dmzBDzfh`{axm?>RprEl$s2E7&>XR0Ce$*}D>vy{(Y005t3O_wO#T`69fjd< zT|IP_dAYnq0zl1cL|T>fIPz-P-pft?jkdPDX5%!~W2CT)V_t%sT+J#NRq%g>o>L-x zd%i8~b+jEvkwif!D3qB*MM0s}P-D|sYm&)NiI}Vju)@k2v>bXza<4Y1j~#VX{TjA- z=)oyRFO=&1l=G=$YZW2TP=m!|`$iSruP%ZIS1Bo;x^{6-Q}Dn7h%zC1OwcKOOgCt> zE60#4f!<>&GOg4TuIUk zrkjce-sK^MSe(>bl2WU$VWfB85Ni+e@yF1L2pA^UJpAa8_^s_BCE_s>yO6>rbEzCR z4)wge{Fqi~PHTi_y||jQZ$1_wEGHlR+F{TQLqY_wX8QL$7JpV9>wD}Qr>FHBXBtaN z(%3?nlU52~?tLZ2P6j5Z#G^FTnEO7eyUQOnml8-~d0BpGtB1=l5aoxz{k^;o9Lc~g zmAOB<(}aomPEaf8#T4(GD(B#WVRZ=#^jG+UfuxL#4r8}k%HR>3%VdX%tKbeFJ6SK0 zT1PWSd4@b<^;il~9Ay91G_Afad811oeb=51hsMu0gKW{JW4{hF@NvWS-8mV&G-TAx zhH8{D)mX3MPrCaOv%yuiV1jNTgXEV>8X7g8M^1=@ODey^)pwEY?F;fpA2{gp@_CDV zN0wQM;&f??l?9~3h}4u6@ge`)=$In;)E-)IRebej3NG%lMryn&j`s>@jt{9U#-d*b2)n{My^z@R*6~Wzm&=d1tWg1`}C_@kA zKX3MF6SR_?->UK}+!55bTpFG*=0yM>L-LbB`!Y9&`S8YB&wz)FE0xAyGb>4lP) zl#xYZg}2KaF#bjypOON%v#VsU$zWSQ^VHEvQtxMs3?7`Vd%N(^*v7ccf)wpBglLa> z;eC|M#Chxa6qsU9x2_-U|BHK0Is9t1iMq^g_2Ht3yF31*4!Xoo6)>0$db z9@TA9XiK17YgA^G6AE{|T}WAM^u;9oGk=*(SOyTThvo}M5>}=;h!!=SK&NoLg;VOR z`{*n|fi*ED0m04rb8}YE%{g$d-8wZA+&DA3Wppd@6ihRrZx_C&0JRy{@e(6IG9aVu zpI+?zEKz@RczkT2SF!Q;nelasx;X)y<+CD7VF>N*o4?HKzcKSEm6ga@*nS%L_9B9& z_ORO9%rNv}$agR!ac$Aae1}k#52nUO3Wn1_*qx?z1)?zmeIfBN(qY>`)!aGOv6fPF zD_dKyc<6BEsq^Ei3Rn2vD`jFYyQ^^%)kf;imr8M{4r!SgcEa1>k`qG5yLEdj|a8K_w6WR>n4!skbu0;J{$D6JlV8?-Y4Ay|GpiNn^&?gV=H{ zM5T8?D)0WqK&UHqPF)@sk=%D`Pbc%`{+hEm5~tFQkQ49F@Wrc?21(W4ulJgTC+{8cK_74H+aCFdYaPgdg(@got1`k}QiPC@yJg;BRgB z-!F__jSJB1RSV zE9knLQJmhq=&U{TMWKgPU43(PRn&U{T=K>AH~e>{TmC_$09C3po|!fESF=5CJ&H&U zZGv`Y*OR{H)!qI>-Qm1iBmA7Q+*}7Rtfn4{*uL=?^>i6;`pkJP&!lJ9dSc;QA(ut| zqP^YTcyIGh>B-)&X@#&&{^2XKFMo!X(vnpap{-L3IQBh4!c6kIFjCXMCcb<&^ zx}O#KA1W#<8g*+Q-Do`BYF?w$3)f#7>YDZMQ(xB++@u!m7j?W^mR+1%n(~}4GZG-7 zELEm167pK|woY?j_fyFT7W`}~G+M)w70o|fo=r)WZ-s1M%XW@QbMYL&%bKpMC)A42 zpUvNVSCeU-&@Gl8KN3I`xGu7hi04wo$(fbV_MslXIOhi}|2cME5!cMuN6ahR?;l;t zMxZG3<6>iNhHa2)Op9y6Gwv6GB5eDY>QmfS6)g=%DJ;J?%Qwu$PdAYQ{_46QIXv< zer*EgjzEv;YF_-RHIJGi2egKPuJ@YVW%l=d>nQNwi2PIiOb*B<*W1IxkFb?f^{Z9`3g3rsw?%u?!(5T4eeq2QK(adB{0)qKa(k>Z4v$XSjjqc&XKUe?x5i7uz4On3=S zOf7FX)hthXrA(#NcUIKq$mtx}R4S1?=6hgSYWn;|2=k41gbE)GZzM)G3uy7q(?w+^ zoOckmQ%sB+p8FV__@;>Ygo?yAL^69c?EB1YkEqXwlumV>t_)^_TFpFHP>8oPg(M!HTrNs;F06zVaQQP)iw8H54IK4p*;A|LqDi=N^Bb*r0v)6 zCNkThlfu|?@SE8U((M;K+}um3uieRKW@k?99g>rhnDJ9cgb*Mvk)^I+%099nifedbKN%kQyqW?wl!={9rAK&naDI-8WbF_AX`5&{o`Tg>d5n$%h zc$R;A+c={YKe*9G=pPpZwrmJE+UV|ep4-Uc_@lc#8BtIaN<(g<4ZB^cWWg_Ngy{BP zrx@YHk0VKQzwDkaFwu&pmzv5edU=s|5c-L{X%>r2wwSIeBr+g`_#h!b;Se91(;tnE zVor4fpPKK_w;~QDM}~%mhKGGca0+J|>-Y%&4oe>6^Cq*zrWYd9*fGzfX#My^KE>o) zp{S~g+fGWFy`0DTF_vc9xMI0@fD(R-;B6$aKK3!rTceRanC|Yrqjw!qG7 zImgb;9qPHUaBQN#6b=vk(6wAT@U>0v+o*4iAl;##8dPrH&nTW@5G^L?Z@>$ZN}iNn z3ZHY5qbrZ&O;cd=A#KMI2Z+FzPySoijn!Uzu; zO|wKX9{~mpb*wwdo*yIKR}KLZOm!bv1w4qXoS!}WXh*@in9lQ{OBH1gY}ufUTg`Gv_h z5|&UPbtV(~vh?CDE{H-HA1u z4hEI!VKA2%=5AW*dsIEZ3`^K;9|o;2Hs>87 z-A2@Zn!4~vJ4JE~WN`Z4d6dffGw?1aujXWI>)3pfqTYNj+h7U?)-UhB^($Xl(U0h) zMvj`8P@5}zl{Y#)6YPpa4a;wA6sD&3hu4#$>_}9RX&P4$xkpgg2WFXa64@E)Dt~o* zTaq+5DZP?}%^+K@Q(Cc-9FjlWf$g@_ zmMeG4NX#Hy`>$XjpD6rYQI(Dcv_p-n1KIh)uhz6B9?|15e7=EKnDw+W-#p0*?H$rA z%-#68+K7`|NM1sgyq=&?f7yXVf9iCj0FAu+*=5TP&}0W$XAWAF#d2KV;J zAR!{&)^^@e!ewM-HB!UjQkXD|hE({x|BTykAZ9Ds^O5%-DJfHEsgOTW{;N-+1$DVV zADJl66E=)QmMe_1nbiuU;C*yXWN^jY*# zzYM>psAg+Hn_8EMljUzVjuoQi!g2^Ch9BKPD#_6@z;cIM0s^M{L{ZZ^S9;v(2(a6q$rb|tS^vt zZ0?SHD3;%Im&mUCKyEHJ>jeGAvgR<+O$--da(7qP{2BsT$WQfu8O*=0?m22^@0#+e zf8Ss4W-9oR2H5GR9^!#ZY`_3`beg3CvTDmz61EuMnZW8^L-D zgNi@r;ulOZ8PGB7pM({7KQIZCIX_B~$g-`PI)JB4&nPdf?X zi9iUX@_!zPSwO)3BQah*+?XB*cQ@U(DOk#F3{hd12*mOgRLRc6Ye)qG_hjHQf~&RaD1`)2*j!5uBN&Zg`$Q@rvjSv0zh@D(c!=@6d^6QZ(zufgm^PmKQMh$Uj7Jadu;wDiITufp)lcJU4&84PWpK#fly{BO>1}zk2{CA=>d-np~&R_5CzRXz4Zw3gXLT; zmh&qq3-9d=&cQ<;oIB8yjyJ8=x8W$ zU3??A0+A^N7`UF2Wf3!EiU=P9Jsx-4rp++A2$jN;K~D@x_-fRm2!m>Tpztem&5 zVeWilyH1tA$(F|cM}VC}%e22AbaF~!fI71n!KNB2IZq`X6jcT&qXY3&UDyxn@aYus2_3GSpgzC&v zsvK^S)4B(h#+Dd1rq*X|EGT%whK_-Oh5Zt?sgm*WTS8WO^s{iSxytpUEc*N1ROcyG zrU(0vs|2S**0_*gki!c?2)izN8}Ly1$Q%cDBet=L1wmKpdlQQtgt;=00oB!Gq(d7c zIn@-Yk8Cnp!Z}e;Gp%(bYE{*@O_|%<#B;tLB^MqxVZC2LaLpPv&F34Fk{h;%5(70A ze#nm>Kb|`?Lm)}7|Jyvb-Ix3Q5jOO!7+o{>G#!dY11|Y^cmqZf21k^M7NQ5e~Z%id58pgS~?ID_52wUJaBT4 zR&OvZcuK*|%`@*kG3xQ}^#WIoI1VH*H~j2g8TeP>1&4%)kVjw!IbKOmlf}oUtMAx5 zIXW(3tU2%|7dJJ@-z33lqP~1fC2+|SthN10DzIaQ0+lWAmg*sgSy5)u2Y>xUx&PYw zcc!?a@XgV5eZNy}+f~Zo1`{J=&){GiS(kiMQ&UuzPv`2-f`UI}Xb>Na%RzMr1TOm@ zyjk3L%{<&*`mNi{vVF?e+)5wVs`gBou(G&pxwh2cRuWeoeROSoLuA)BK$P-_CmO5^ zm<9Ryo5#+};Vbw##RTg`q>Ae@oB)|)GuksWW$G}Q&}6O@V@V8C9LC4S>Mj0E zri$c_``{i7q`(OV-DV3_Xpakx8hLz$0eKavqk39!{IVh4ows>uufjwD17rT!Dpq2< z+$&%%MKDn1>l@Hp|Jj}hw-rngr^(02YqJD{&_0R%#yYQz+UUBarYhpG!z8 znSmAfYwP{IXpV_NS&tZ9m4vA>6+U%=!-?*oN-pGa>gldFLE*U-(gD|(0~)Xs1c)&L z1t7)iYC-u`uJk7G+3n+Qwgyqv)AR0$^v7Xh5)$d;{T91V?BYY$s_@8e!)PdqGj0wJ zmEX8bkKywdW|To$U1%N>63_Qvi_#rFVLOC7l8&3_Wq!`Dsi`S1?^!)s3P*;#=DrgK z_)6GT1CJ8^`@8zD$*P|=9v+Lc-&F7)I=`x+YS^&V;N#tGKDd9)AV!5*OqR^o*ie7~ zsJC8Z1;80h7 zTThS7jo4lr*?@erfG2HK{DX(9>kM7`E(Nh9G7aHhc65Q}caVLi>)px}d(R2tiO>3H znxWPLw0;HMwMnF^D@vcXWxG7hZ#%T-Q0}>eA&^9SW&!t$eIw0@4GTJx8%!8T9OV4J zD4cO?^4+sa=%(I|t;kt<(khZ5SCPi%D{++t?l85XX_YG4>nIMJssti~3Z2aRfq!2k za^e{eG1=DMW1)V#IZm;Hu|cbdJ3Bk`;5g_2+Izosn*=yH?Qg{0AuUY?Bg~0~HH77s zM^T?WE_1Lc6lrNx6F-H2Gk#Ij+LvoY(zl~lRFF*C#3?#dH&hv!5d$8UwZ=L9BNxZf zUdLXH;5^AU3~hYGXhSF*1#!GCeT-?-JmGtVlDwuFk(q0F+tw>9l)|`;$T(gcsW`)t zYAh-^RFleloE}F1UpWspx&wM!fG7&aA(oXWBNm~=cS#IVkz6MF%LbF?Mn&Q_GEB$? z8Lx;zRi{R|5T$PL`R!`L;jHwQKIa!t*YY>;$O1W9gSMEFc8+_#;ibav;ogpD6E3v| ztYpy#A<7l#OUUaakSn93qxWC)2|P!De*p3(;9?300J1I?()UPa75A91b9;AosR=|F zyTXh`w;^W~*A@aLE;?cz%OMLS3PVx#b?W*_-W2qSv>8b$;P{a+R zrB;-!GLo*Iwye!g7@##qv1(D&KKoXp zbwfXff}rt?al{DElR+KQE72=W zEbcVYqP9zreGO|xC9OZ@g3aj}br@RF)Y3}u9IrermDUf)&bUka5{Ohe#e=vK9HbaA zYT={2eE&h2S2dU}Zxmx+kRS)k%*xSA+dmQp(j5D?kXnkOUp$OQB&$*H=Y0DtJu=<~ zg)mvZI1wOx1RL^O!OlNBl5798K$w-9F>g!uM?wjaDU6H6$Afik*#`LiRYjJUj6r{kyzy>-hCYD501$J38N7bJ4(sN2GOwKrV30#TvL6hz(kGmb+PLQG;dp}jV z-p(L7P$<{a2|oyZ8frb^^V)0ci;ZCFA!C)~cxH_PfiQFJah^XY-sMm3q%NUKC_*>P zvD(-Xn<%Nd0Cn;6>zmjn0U3)Kx#BUggQN4SXU3d~Qadzn?dcSDeamXjP4zS+r6Oj? z!Xubr^n`PwODcG(v!_3rM!rkT{Bb5=YbVmxl08+@9b#Ivq0dYlvqU>KhzGVR>EW}H}{Mc`7x?Nb)NUoR@r zmJHaTzmfd|yusL+D~$VzBRX-gsBXN@nBZMnqDyBkuqMhhg4_;x(_PkhkE;44sjy3= z5#iUIIvrN^F#6!k4tOjPdhXo*PSUoMQ+s;* z&jgOP-Jf81N-RmEM`C531r=>BL!fFDDIT3H9ZMwZ``PJcX8yi z3pgVw#)v5WwdCJJH+O9#BNLOnf`TBYX*a-J; zz(Sgsg9DDcl!#o0q+-%I_cUMDupNKk^@i}p8)4R z(5^Bj{0FRYa#(o!dIt-OiVmw{cw9d0w3}B<`-%L0aa|#_`wT;3Y$8O4)AH3Ph;&?^ zG1oqQ?x^GgR=J)Hqc4G+B#xr5*$s-Ps4nm^($Qhvx3#7W*0-=IY}Yq4GiwEB;#BX2 zX7`ar0{KkeCg-1TykSQN>uUGw9$rumuP`3N`DJSY29SzkQ4NkBcD|ODu(62j9sK_L zE*jb|@)p@uWC5pBj4&iRc7YvTSxs$XVj(~%l1QUijZ?_go|Nv*yTq@NP;8;vS8#aX zl5Hf92dvlj7C{U=l>u};e`@c-=Ex<8vF&Hzi<75&d4rp%YIoxk#dvTQbOayUqSjEW z!;GZBfO`faf*%SGsy6iwHy^CDL@a9C)+IDJQCprCmzS64Ei2;80dg-}(SYb|O zPID=RGc$;&t#x{B0bwL=qJkkpaUU=55R&`VK*tL>D`DwT>ma-$E;P|-^RWLTaX?l8 z?HDser-Xm!ZyR8WF!*OzOabC6`G;J?tlHX3h4lL@VUJbs`|C+Yz3EplQwxJO_k*Ty zLcv5XJ53_3Y0s;eK9K_~Xvm3OtE1AZ((rV?HajDTx%(L_(YU!?G}KNlyz(wAiyrZ9 zYk4{62sTU+SAkSa=b%{3{U0+-O6#_U4z5qhxbs4PL7o?MY8vcsXp$p3iG;Wp<$g;h?J!llUR8zX%*<8jG#;%9(a_g1+%;rwjwRMSGAZ=l~39h5M_uQl+t2>;2tKKI_9IXxO$B6$}vV7JTZEo!RX zg9lG@Y#@>dgG={O0F0Hm{)UCuZ!#nadC;~?e78pq9!Vecl{Cl|sHbD0-OJD)J_1#U zQ?oe4OVogL?lGycaDrh!6Kx`F7FK1P{c&u39Qe{6byI&Pr5 zTQA6C9N~5NQDJ9A(MKXlzD|yl1Nw>~|BWEMGtG&Bqb^eQ2OGd(`P|HnRdh!O1&P^A zr48*Y?(No6c00T$Q^C}laA4Szac%0nSw4Ch$kKZBMB%?j>o=z6>K5FihMW1$hvm>HoZ|?tdGJ!tWhFqwpNb5>0 z?dF*Jcxp_HLRn(=$Ur*x;R z1Y(YedhuD#`GBZ;*oX;`FiV_vf4`wlD8z@<9Z4d@fq zK9n))*0~eRxfF!;Kxf|WFKA6Vb9ld&n_(v>)RQ^$O9CPzN{^2XH+9C zD7|Ae&uEC+e$B*4TE5?WdAYa#1?*Ni3-`Ci5o!XAX_rg>J;5@M8@T&dGg^wUL*_;1 zc7d4V_{_Ub>$`jVQc?sTL+0$B_?KH1WF0HU0X$0>8xEnY{Tk)HpLOVTMgMZ12>$$U z(J0#3fg=kTgAq!_BHrL7St6b#C9dTH!L)moLP zU-|jSAmpH3J|#*dk}#q{i7w$ZYf?Zmx{617Sv=71>a`L6jZ0m_;Aqh82dndi8KkQ- zBWJGJTg7xxbF;BF=hlZMU=qjg&g`3h=AY*oX)T5BrCY=rRKj z?*l*bB0@AA`}_Nudn>D}B?GLN!i|jaNSMwkra)*-{8_M4V0ZNtzHbTjZlYga#(EzO z)!!LGZ-aw=6|p*#!e+hy2b=u*`hZHaLeOpXZ_Sw8xjTx`Z6oX5P*ENJauuAlX>kEM zxuBYBzG-M~BO`!_8)(up=#s{=ahl=#n`yiKmW?;ochn4JwIU+dmhTu}%g2siQF;)+ z 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
lQ#848-(7JI$ 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 EKdZYMssI20 diff --git a/src/components/LspProvider.tsx b/src/components/LspProvider.tsx index a302290d9..dd5b2d5b9 100644 --- a/src/components/LspProvider.tsx +++ b/src/components/LspProvider.tsx @@ -69,14 +69,7 @@ export const LspProvider = ({ children }: { children: React.ReactNode }) => { const [isKclLspReady, setIsKclLspReady] = useState(false) const [isCopilotLspReady, setIsCopilotLspReady] = useState(false) - const { - auth, - settings: { - context: { - modeling: { defaultUnit }, - }, - }, - } = useSettingsAuthContext() + const { auth } = useSettingsAuthContext() const token = auth?.context.token const navigate = useNavigate() @@ -92,7 +85,6 @@ export const LspProvider = ({ children }: { children: React.ReactNode }) => { const initEvent: KclWorkerOptions = { wasmUrl: wasmUrl(), token: token, - baseUnit: defaultUnit.current, apiBaseUrl: VITE_KC_API_BASE_URL, } lspWorker.postMessage({ diff --git a/src/components/SettingsAuthProvider.tsx b/src/components/SettingsAuthProvider.tsx index d04f2b930..1198cd803 100644 --- a/src/components/SettingsAuthProvider.tsx +++ b/src/components/SettingsAuthProvider.tsx @@ -1,5 +1,5 @@ import { trap } from 'lib/trap' -import { useMachine } from '@xstate/react' +import { useMachine, useSelector } from '@xstate/react' import { useNavigate, useRouteLoaderData, useLocation } from 'react-router-dom' import { PATHS, BROWSER_PATH } from 'lib/paths' import { authMachine, TOKEN_PERSIST_KEY } from '../machines/authMachine' @@ -23,7 +23,6 @@ import { engineCommandManager, sceneEntitiesManager, } from 'lib/singletons' -import { uuidv4 } from 'lib/utils' import { IndexLoaderData } from 'lib/types' import { settings } from 'lib/settings/initialSettings' import { @@ -55,11 +54,15 @@ type SettingsAuthContextType = { settings: MachineContext } -// a little hacky for sure, open to changing it -// this implies that we should only even have one instance of this provider mounted at any one time -// but I think that's a safe assumption -let settingsStateRef: ContextFrom | undefined -export const getSettingsState = () => settingsStateRef +/** + * This variable is used to store the last snapshot of the settings context + * for use outside of React, such as in `wasm.ts`. It is updated every time + * the settings machine changes with `useSelector`. + * TODO: when we decouple XState from React, we can just subscribe to the actor directly from `wasm.ts` + */ +export let lastSettingsContextSnapshot: + | ContextFrom + | undefined export const SettingsAuthContext = createContext({} as SettingsAuthContextType) @@ -129,27 +132,11 @@ export const SettingsAuthProviderBase = ({ .setTheme(context.app.theme.current) .catch(reportRejection) }, - setEngineScaleGridVisibility: ({ context }) => { - engineCommandManager.setScaleGridVisibility( - context.modeling.showScaleGrid.current - ) - }, setClientTheme: ({ context }) => { const opposingTheme = getOppositeTheme(context.app.theme.current) sceneInfra.theme = opposingTheme sceneEntitiesManager.updateSegmentBaseColor(opposingTheme) }, - setEngineEdges: ({ context }) => { - // eslint-disable-next-line @typescript-eslint/no-floating-promises - engineCommandManager.sendSceneCommand({ - cmd_id: uuidv4(), - type: 'modeling_cmd_req', - cmd: { - type: 'edge_lines_visible' as any, // TODO update kittycad.ts to get this new command type - hidden: !context.modeling.highlightEdges.current, - }, - }) - }, toastSuccess: ({ event }) => { if (!('data' in event)) return const eventParts = event.type.replace(/^set./, '').split('.') as [ @@ -175,17 +162,27 @@ export const SettingsAuthProviderBase = ({ }, 'Execute AST': ({ context, event }) => { try { + const relevantSetting = (s: typeof settings) => { + return ( + s.modeling?.defaultUnit?.current !== + context.modeling.defaultUnit.current || + s.modeling.showScaleGrid.current !== + context.modeling.showScaleGrid.current || + s.modeling?.highlightEdges.current !== + context.modeling.highlightEdges.current + ) + } + const allSettingsIncludesUnitChange = event.type === 'Set all settings' && - event.settings?.modeling?.defaultUnit?.current !== - context.modeling.defaultUnit.current + relevantSetting(event.settings) const resetSettingsIncludesUnitChange = - event.type === 'Reset settings' && - context.modeling.defaultUnit.current !== - settings?.modeling?.defaultUnit?.default + event.type === 'Reset settings' && relevantSetting(settings) if ( event.type === 'set.modeling.defaultUnit' || + event.type === 'set.modeling.showScaleGrid' || + event.type === 'set.modeling.highlightEdges' || allSettingsIncludesUnitChange || resetSettingsIncludesUnitChange ) { @@ -214,7 +211,10 @@ export const SettingsAuthProviderBase = ({ }), { input: loadedSettings } ) - settingsStateRef = settingsState.context + // Any time the actor changes, update the settings state for external use + useSelector(settingsActor, (s) => { + lastSettingsContextSnapshot = s.context + }) useEffect(() => { if (!isDesktop()) return diff --git a/src/editor/plugins/lsp/types.ts b/src/editor/plugins/lsp/types.ts index 417a5b6fe..b512de30f 100644 --- a/src/editor/plugins/lsp/types.ts +++ b/src/editor/plugins/lsp/types.ts @@ -1,7 +1,5 @@ import { LspWorkerEventType } from '@kittycad/codemirror-lsp-client' -import { UnitLength } from 'wasm-lib/kcl/bindings/UnitLength' - export enum LspWorker { Kcl = 'kcl', Copilot = 'copilot', @@ -9,7 +7,6 @@ export enum LspWorker { export interface KclWorkerOptions { wasmUrl: string token: string - baseUnit: UnitLength apiBaseUrl: string } diff --git a/src/editor/plugins/lsp/worker.ts b/src/editor/plugins/lsp/worker.ts index 950f8a435..ed91c5d20 100644 --- a/src/editor/plugins/lsp/worker.ts +++ b/src/editor/plugins/lsp/worker.ts @@ -17,7 +17,6 @@ import { KclWorkerOptions, CopilotWorkerOptions, } from 'editor/plugins/lsp/types' -import { EngineCommandManager } from 'lang/std/engineConnection' import { err, reportRejection } from 'lib/trap' const intoServer: IntoServer = new IntoServer() @@ -46,14 +45,12 @@ export async function copilotLspRun( export async function kclLspRun( config: ServerConfig, - engineCommandManager: EngineCommandManager | null, token: string, - baseUnit: string, baseUrl: string ) { try { console.log('start kcl lsp') - await kcl_lsp_run(config, engineCommandManager, baseUnit, token, baseUrl) + await kcl_lsp_run(config, null, undefined, token, baseUrl) } catch (e: any) { console.log('kcl lsp failed', e) // We can't restart here because a moved value, we should do this another way. @@ -82,13 +79,7 @@ onmessage = function (event: MessageEvent) { switch (worker) { case LspWorker.Kcl: const kclData = eventData as KclWorkerOptions - await kclLspRun( - config, - null, - kclData.token, - kclData.baseUnit, - kclData.apiBaseUrl - ) + await kclLspRun(config, kclData.token, kclData.apiBaseUrl) break case LspWorker.Copilot: let copilotData = eventData as CopilotWorkerOptions diff --git a/src/hooks/useSetupEngineManager.ts b/src/hooks/useSetupEngineManager.ts index a8095b1b3..cb23e666f 100644 --- a/src/hooks/useSetupEngineManager.ts +++ b/src/hooks/useSetupEngineManager.ts @@ -2,7 +2,7 @@ import { useLayoutEffect, useEffect, useRef } from 'react' import { engineCommandManager, kclManager } from 'lib/singletons' import { deferExecution } from 'lib/utils' import { Themes } from 'lib/theme' -import { makeDefaultPlanes, modifyGrid } from 'lang/wasm' +import { makeDefaultPlanes } from 'lang/wasm' import { useModelingContext } from './useModelingContext' import { useNetworkContext } from 'hooks/useNetworkContext' import { useAppState, useAppStream } from 'AppState' @@ -56,9 +56,6 @@ export function useSetupEngineManager( makeDefaultPlanes: () => { return makeDefaultPlanes(kclManager.engineCommandManager) }, - modifyGrid: (hidden: boolean) => { - return modifyGrid(kclManager.engineCommandManager, hidden) - }, }) hasSetNonZeroDimensions.current = true } diff --git a/src/lang/modifyAst/addEdgeTreatment.test.ts b/src/lang/modifyAst/addEdgeTreatment.test.ts index d30d57389..481b965f3 100644 --- a/src/lang/modifyAst/addEdgeTreatment.test.ts +++ b/src/lang/modifyAst/addEdgeTreatment.test.ts @@ -40,7 +40,6 @@ beforeAll(async () => { makeDefaultPlanes: () => makeDefaultPlanes(engineCommandManager), setMediaStream: () => {}, setIsStreamReady: () => {}, - modifyGrid: async () => {}, callbackOnEngineLiteConnect: () => { resolve(true) }, diff --git a/src/lang/std/artifactGraph.test.ts b/src/lang/std/artifactGraph.test.ts index 8f841a1d7..fd4117b17 100644 --- a/src/lang/std/artifactGraph.test.ts +++ b/src/lang/std/artifactGraph.test.ts @@ -139,7 +139,6 @@ beforeAll(async () => { makeDefaultPlanes: () => makeDefaultPlanes(engineCommandManager), setMediaStream: () => {}, setIsStreamReady: () => {}, - modifyGrid: async () => {}, // eslint-disable-next-line @typescript-eslint/no-misused-promises callbackOnEngineLiteConnect: async () => { const cacheEntries = Object.entries(codeToWriteCacheFor) as [ diff --git a/src/lang/std/engineConnection.ts b/src/lang/std/engineConnection.ts index 8aed52896..5a92dd155 100644 --- a/src/lang/std/engineConnection.ts +++ b/src/lang/std/engineConnection.ts @@ -1399,7 +1399,6 @@ export class EngineCommandManager extends EventTarget { } private makeDefaultPlanes: () => Promise | null = () => null - private modifyGrid: (hidden: boolean) => Promise | null = () => null private onEngineConnectionOpened = () => {} private onEngineConnectionClosed = () => {} @@ -1432,7 +1431,6 @@ export class EngineCommandManager extends EventTarget { height, token, makeDefaultPlanes, - modifyGrid, settings = { pool: null, theme: Themes.Dark, @@ -1452,14 +1450,12 @@ export class EngineCommandManager extends EventTarget { height: number token?: string makeDefaultPlanes: () => Promise - modifyGrid: (hidden: boolean) => Promise settings?: SettingsViaQueryString }) { if (settings) { this.settings = settings } this.makeDefaultPlanes = makeDefaultPlanes - this.modifyGrid = modifyGrid if (width === 0 || height === 0) { return } @@ -1539,21 +1535,15 @@ export class EngineCommandManager extends EventTarget { type: 'default_camera_get_settings', }, }) - // We want modify the grid first because we don't want it to flash. - // Ideally these would already be default hidden in engine (TODO do - // that) https://github.com/KittyCAD/engine/issues/2282 - // eslint-disable-next-line @typescript-eslint/no-floating-promises - this.modifyGrid(!this.settings.showScaleGrid)?.then(async () => { - await this.initPlanes() - setIsStreamReady(true) + await this.initPlanes() + setIsStreamReady(true) - // Other parts of the application should use this to react on scene ready. - this.dispatchEvent( - new CustomEvent(EngineCommandManagerEvents.SceneReady, { - detail: this.engineConnection, - }) - ) - }) + // Other parts of the application should use this to react on scene ready. + this.dispatchEvent( + new CustomEvent(EngineCommandManagerEvents.SceneReady, { + detail: this.engineConnection, + }) + ) } this.engineConnection.addEventListener( @@ -2212,15 +2202,6 @@ export class EngineCommandManager extends EventTarget { }).catch(reportRejection) } - /** - * Set the visibility of the scale grid in the engine scene. - * @param visible - whether to show or hide the scale grid - */ - setScaleGridVisibility(visible: boolean) { - // eslint-disable-next-line @typescript-eslint/no-floating-promises - this.modifyGrid(!visible) - } - // Some "objects" have the same source range, such as sketch_mode_start and start_path. // So when passing a range, we need to also specify the command type mapRangeToObjectId( diff --git a/src/lang/wasm.ts b/src/lang/wasm.ts index ddc599f36..fe83338e3 100644 --- a/src/lang/wasm.ts +++ b/src/lang/wasm.ts @@ -1,14 +1,13 @@ import init, { parse_wasm, recast_wasm, - execute_wasm, + execute, kcl_lint, modify_ast_for_sketch_wasm, is_points_ccw, get_tangential_arc_to_info, program_memory_init, make_default_planes, - modify_grid, coredump, toml_stringify, default_app_settings, @@ -43,7 +42,9 @@ import { Environment } from '../wasm-lib/kcl/bindings/Environment' import { Node } from 'wasm-lib/kcl/bindings/Node' import { CompilationError } from 'wasm-lib/kcl/bindings/CompilationError' import { SourceRange as RustSourceRange } from 'wasm-lib/kcl/bindings/SourceRange' +import { getAllCurrentSettings } from 'lib/settings/settingsUtils' +export type { Configuration } from 'wasm-lib/kcl/bindings/Configuration' export type { Program } from '../wasm-lib/kcl/bindings/Program' export type { Expr } from '../wasm-lib/kcl/bindings/Expr' export type { ObjectExpression } from '../wasm-lib/kcl/bindings/ObjectExpression' @@ -493,18 +494,19 @@ export const _executor = async ( return Promise.reject(programMemoryOverride) try { - let baseUnit = 'mm' + let jsAppSettings = default_app_settings() if (!TEST) { - const getSettingsState = import('components/SettingsAuthProvider').then( - (module) => module.getSettingsState - ) - baseUnit = - (await getSettingsState)()?.modeling.defaultUnit.current || 'mm' + const lastSettingsSnapshot = await import( + 'components/SettingsAuthProvider' + ).then((module) => module.lastSettingsContextSnapshot) + if (lastSettingsSnapshot) { + jsAppSettings = getAllCurrentSettings(lastSettingsSnapshot) + } } - const execState: RawExecState = await execute_wasm( + const execState: RawExecState = await execute( JSON.stringify(node), JSON.stringify(programMemoryOverride?.toRaw() || null), - baseUnit, + JSON.stringify({ settings: jsAppSettings }), engineCommandManager, fileSystemManager ) @@ -552,20 +554,6 @@ export const makeDefaultPlanes = async ( } } -export const modifyGrid = async ( - engineCommandManager: EngineCommandManager, - hidden: boolean -): Promise => { - try { - await modify_grid(engineCommandManager, hidden) - return - } catch (e) { - // TODO: do something real with the error. - console.log('modify grid error', e) - return Promise.reject(e) - } -} - export const modifyAstForSketch = async ( engineCommandManager: EngineCommandManager, ast: Node, diff --git a/src/lib/settings/settingsUtils.test.ts b/src/lib/settings/settingsUtils.test.ts index f0a598a8c..20a65a18b 100644 --- a/src/lib/settings/settingsUtils.test.ts +++ b/src/lib/settings/settingsUtils.test.ts @@ -2,6 +2,7 @@ import { DeepPartial } from 'lib/types' import { Configuration } from 'wasm-lib/kcl/bindings/Configuration' import { configurationToSettingsPayload, + getAllCurrentSettings, projectConfigurationToSettingsPayload, setSettingsAtLevel, } from './settingsUtils' @@ -65,3 +66,48 @@ describe(`testing settings initialization`, () => { expect(settings.app.themeColor.current).toBe('200') }) }) + +describe(`testing getAllCurrentSettings`, () => { + it(`returns the correct settings`, () => { + // Set up the settings + let settings = createSettings() + const appConfiguration: DeepPartial = { + settings: { + app: { + appearance: { + theme: 'dark', + color: 190, + }, + }, + }, + } + const projectConfiguration: DeepPartial = { + settings: { + app: { + appearance: { + theme: 'light', + color: 200, + }, + }, + modeling: { + base_unit: 'ft', + }, + }, + } + + const appSettingsPayload = configurationToSettingsPayload(appConfiguration) + const projectSettingsPayload = + projectConfigurationToSettingsPayload(projectConfiguration) + + setSettingsAtLevel(settings, 'user', appSettingsPayload) + setSettingsAtLevel(settings, 'project', projectSettingsPayload) + + // Now the test: get all the settings' current resolved values + const allCurrentSettings = getAllCurrentSettings(settings) + // This one gets the 'user'-level theme because it's ignored at the project level + // (see the test "doesn't read theme from project settings") + expect(allCurrentSettings.app.theme).toBe('dark') + expect(allCurrentSettings.app.themeColor).toBe('200') + expect(allCurrentSettings.modeling.defaultUnit).toBe('ft') + }) +}) diff --git a/src/lib/settings/settingsUtils.ts b/src/lib/settings/settingsUtils.ts index f9ab5ad32..36c9bef22 100644 --- a/src/lib/settings/settingsUtils.ts +++ b/src/lib/settings/settingsUtils.ts @@ -286,6 +286,27 @@ export function getChangedSettingsAtLevel( return changedSettings } +export function getAllCurrentSettings( + allSettings: typeof settings +): SaveSettingsPayload { + const currentSettings = {} as SaveSettingsPayload + Object.entries(allSettings).forEach(([category, settingsCategory]) => { + const categoryKey = category as keyof typeof settings + Object.entries(settingsCategory).forEach( + ([setting, settingValue]: [string, Setting]) => { + const settingKey = + setting as keyof (typeof settings)[typeof categoryKey] + currentSettings[categoryKey] = { + ...currentSettings[categoryKey], + [settingKey]: settingValue.current, + } + } + ) + }) + + return currentSettings +} + export function setSettingsAtLevel( allSettings: typeof settings, level: SettingsLevel, diff --git a/src/lib/testHelpers.ts b/src/lib/testHelpers.ts index 4f545ad11..7453086ae 100644 --- a/src/lib/testHelpers.ts +++ b/src/lib/testHelpers.ts @@ -112,9 +112,6 @@ export async function executor( makeDefaultPlanes: () => { return new Promise((resolve) => resolve(defaultPlanes)) }, - modifyGrid: (hidden: boolean) => { - return new Promise((resolve) => resolve()) - }, }) return new Promise((resolve) => { diff --git a/src/machines/settingsMachine.ts b/src/machines/settingsMachine.ts index 571aa606d..1c432c923 100644 --- a/src/machines/settingsMachine.ts +++ b/src/machines/settingsMachine.ts @@ -42,8 +42,6 @@ export const settingsMachine = setup({ setClientTheme: () => {}, 'Execute AST': () => {}, toastSuccess: () => {}, - setEngineEdges: () => {}, - setEngineScaleGridVisibility: () => {}, setClientSideSceneUnits: () => {}, persistSettings: () => {}, resetSettings: assign(({ context, event }) => { @@ -172,7 +170,7 @@ export const settingsMachine = setup({ 'set.modeling.highlightEdges': { target: 'persisting settings', - actions: ['setSettingAtLevel', 'toastSuccess', 'setEngineEdges'], + actions: ['setSettingAtLevel', 'toastSuccess', 'Execute AST'], }, 'Reset settings': { @@ -201,11 +199,7 @@ export const settingsMachine = setup({ 'set.modeling.showScaleGrid': { target: 'persisting settings', - actions: [ - 'setSettingAtLevel', - 'toastSuccess', - 'setEngineScaleGridVisibility', - ], + actions: ['setSettingAtLevel', 'toastSuccess', 'Execute AST'], }, }, }, diff --git a/src/wasm-lib/kcl/src/engine/mod.rs b/src/wasm-lib/kcl/src/engine/mod.rs index f41cbaf67..9e1d315f9 100644 --- a/src/wasm-lib/kcl/src/engine/mod.rs +++ b/src/wasm-lib/kcl/src/engine/mod.rs @@ -120,6 +120,61 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { Ok(()) } + /// Set the visibility of edges. + async fn set_edge_visibility( + &self, + visible: bool, + source_range: SourceRange, + ) -> Result<(), crate::errors::KclError> { + self.batch_modeling_cmd( + uuid::Uuid::new_v4(), + source_range, + &ModelingCmd::from(mcmd::EdgeLinesVisible { hidden: !visible }), + ) + .await?; + + Ok(()) + } + + async fn set_units( + &self, + units: crate::UnitLength, + source_range: SourceRange, + ) -> Result<(), crate::errors::KclError> { + // Before we even start executing the program, set the units. + self.batch_modeling_cmd( + uuid::Uuid::new_v4(), + source_range, + &ModelingCmd::from(mcmd::SetSceneUnits { unit: units.into() }), + ) + .await?; + + Ok(()) + } + + /// Re-run the command to apply the settings. + async fn reapply_settings( + &self, + settings: &crate::ExecutorSettings, + source_range: SourceRange, + ) -> Result<(), crate::errors::KclError> { + // Set the edge visibility. + self.set_edge_visibility(settings.highlight_edges, source_range).await?; + + // Change the units. + self.set_units(settings.units, source_range).await?; + + // Send the command to show the grid. + self.modify_grid(!settings.show_grid, source_range).await?; + + // We do not have commands for changing ssao on the fly. + + // Flush the batch queue, so the settings are applied right away. + self.flush_batch(false, source_range).await?; + + Ok(()) + } + // Add a modeling command to the batch but don't fire it right away. async fn batch_modeling_cmd( &self, @@ -504,11 +559,11 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { })) } - async fn modify_grid(&self, hidden: bool) -> Result<(), KclError> { + async fn modify_grid(&self, hidden: bool, source_range: SourceRange) -> Result<(), KclError> { // Hide/show the grid. self.batch_modeling_cmd( uuid::Uuid::new_v4(), - Default::default(), + source_range, &ModelingCmd::from(mcmd::ObjectVisible { hidden, object_id: *GRID_OBJECT_ID, @@ -519,7 +574,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { // Hide/show the grid scale text. self.batch_modeling_cmd( uuid::Uuid::new_v4(), - Default::default(), + source_range, &ModelingCmd::from(mcmd::ObjectVisible { hidden, object_id: *GRID_SCALE_TEXT_OBJECT_ID, @@ -527,8 +582,6 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { ) .await?; - self.flush_batch(false, Default::default()).await?; - Ok(()) } diff --git a/src/wasm-lib/kcl/src/execution/cache.rs b/src/wasm-lib/kcl/src/execution/cache.rs new file mode 100644 index 000000000..ea8ed1b5c --- /dev/null +++ b/src/wasm-lib/kcl/src/execution/cache.rs @@ -0,0 +1,50 @@ +//! Functions for helping with caching an ast and finding the parts the changed. + +use schemars::JsonSchema; +use serde::{Deserialize, Serialize}; + +use crate::{ + execution::ExecState, + parsing::ast::types::{Node, Program}, +}; + +/// Information for the caching an AST and smartly re-executing it if we can. +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] +#[ts(export)] +pub struct CacheInformation { + /// The old information. + pub old: Option, + /// The new ast to executed. + pub new_ast: Node, +} + +/// The old ast and program memory. +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] +#[ts(export)] +pub struct OldAstState { + /// The ast. + pub ast: Node, + /// The exec state. + pub exec_state: ExecState, + /// The last settings used for execution. + pub settings: crate::execution::ExecutorSettings, +} + +impl From for CacheInformation { + fn from(program: crate::Program) -> Self { + CacheInformation { + old: None, + new_ast: program.ast, + } + } +} + +/// The result of a cache check. +#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] +#[ts(export)] +pub struct CacheResult { + /// Should we clear the scene and start over? + pub clear_scene: bool, + /// The program that needs to be executed. + pub program: Node, +} diff --git a/src/wasm-lib/kcl/src/execution/mod.rs b/src/wasm-lib/kcl/src/execution/mod.rs index c7405b6a5..a6cc05d03 100644 --- a/src/wasm-lib/kcl/src/execution/mod.rs +++ b/src/wasm-lib/kcl/src/execution/mod.rs @@ -23,15 +23,18 @@ type Point3D = kcmc::shared::Point3d; pub use function_param::FunctionParam; pub use kcl_value::{KclObjectFields, KclValue}; +pub(crate) mod cache; +mod exec_ast; +mod function_param; +mod kcl_value; + use crate::{ engine::{EngineManager, ExecutionKind}, errors::{KclError, KclErrorDetails}, + execution::cache::{CacheInformation, CacheResult}, fs::{FileManager, FileSystem}, - parsing::ast::{ - cache::{get_changed_program, CacheInformation}, - types::{ - BodyItem, Expr, FunctionExpression, ImportSelector, ItemVisibility, Node, NodeRef, TagDeclarator, TagNode, - }, + parsing::ast::types::{ + BodyItem, Expr, FunctionExpression, ImportSelector, ItemVisibility, Node, NodeRef, TagDeclarator, TagNode, }, settings::types::UnitLength, source_range::{ModuleId, SourceRange}, @@ -39,10 +42,6 @@ use crate::{ ExecError, Program, }; -mod exec_ast; -mod function_param; -mod kcl_value; - /// State for executing a program. #[derive(Debug, Default, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[ts(export)] @@ -1660,17 +1659,6 @@ impl ExecutorContext { let engine: Arc> = Arc::new(Box::new(crate::engine::conn::EngineConnection::new(ws).await?)); - // Set the edge visibility. - engine - .batch_modeling_cmd( - uuid::Uuid::new_v4(), - SourceRange::default(), - &ModelingCmd::from(mcmd::EdgeLinesVisible { - hidden: !settings.highlight_edges, - }), - ) - .await?; - Ok(Self { engine, fs: Arc::new(FileManager::new()), @@ -1697,7 +1685,7 @@ impl ExecutorContext { pub async fn new( engine_manager: crate::engine::conn_wasm::EngineCommandManager, fs_manager: crate::fs::wasm::FileSystemManager, - units: UnitLength, + settings: ExecutorSettings, ) -> Result { Ok(ExecutorContext { engine: Arc::new(Box::new( @@ -1707,16 +1695,16 @@ impl ExecutorContext { )), fs: Arc::new(FileManager::new(fs_manager)), stdlib: Arc::new(StdLib::new()), - settings: ExecutorSettings { - units, - ..Default::default() - }, + settings, context_type: ContextType::Live, }) } #[cfg(target_arch = "wasm32")] - pub async fn new_mock(fs_manager: crate::fs::wasm::FileSystemManager, units: UnitLength) -> Result { + pub async fn new_mock( + fs_manager: crate::fs::wasm::FileSystemManager, + settings: ExecutorSettings, + ) -> Result { Ok(ExecutorContext { engine: Arc::new(Box::new( crate::engine::conn_mock::EngineConnection::new() @@ -1725,10 +1713,7 @@ impl ExecutorContext { )), fs: Arc::new(FileManager::new(fs_manager)), stdlib: Arc::new(StdLib::new()), - settings: ExecutorSettings { - units, - ..Default::default() - }, + settings, context_type: ContextType::Mock, }) } @@ -1817,6 +1802,71 @@ impl ExecutorContext { // AND if we aren't in wasm it doesn't really matter. Ok(()) } + // Given an old ast, old program memory and new ast, find the parts of the code that need to be + // re-executed. + // This function should never error, because in the case of any internal error, we should just pop + // the cache. + pub async fn get_changed_program(&self, info: CacheInformation) -> Option { + let Some(old) = info.old else { + // We have no old info, we need to re-execute the whole thing. + return Some(CacheResult { + clear_scene: true, + program: info.new_ast, + }); + }; + + // If the settings are different we might need to bust the cache. + // We specifically do this before checking if they are the exact same. + if old.settings != self.settings { + // If the units are different we need to re-execute the whole thing. + if old.settings.units != self.settings.units { + return Some(CacheResult { + clear_scene: true, + program: info.new_ast, + }); + } + + // If anything else is different we do not need to re-execute, but rather just + // run the settings again. + + if self + .engine + .reapply_settings(&self.settings, Default::default()) + .await + .is_err() + { + // Bust the cache, we errored. + return Some(CacheResult { + clear_scene: true, + program: info.new_ast, + }); + } + } + + // If the ASTs are the EXACT same we return None. + // We don't even need to waste time computing the digests. + if old.ast == info.new_ast { + return None; + } + + let mut old_ast = old.ast.inner; + old_ast.compute_digest(); + let mut new_ast = info.new_ast.inner.clone(); + new_ast.compute_digest(); + + // Check if the digest is the same. + if old_ast.digest == new_ast.digest { + return None; + } + + // Check if the changes were only to Non-code areas, like comments or whitespace. + + // For any unhandled cases just re-execute the whole thing. + Some(CacheResult { + clear_scene: true, + program: info.new_ast, + }) + } /// Perform the execution of a program. /// You can optionally pass in some initialization memory. @@ -1837,7 +1887,7 @@ impl ExecutorContext { let _stats = crate::log::LogPerfStats::new("Interpretation"); // Get the program that actually changed from the old and new information. - let cache_result = get_changed_program(cache_info.clone(), &self.settings); + let cache_result = self.get_changed_program(cache_info.clone()).await; // Check if we don't need to re-execute. let Some(cache_result) = cache_result else { @@ -1854,23 +1904,9 @@ impl ExecutorContext { // TODO: Use the top-level file's path. exec_state.add_module(std::path::PathBuf::from("")); - // Before we even start executing the program, set the units. - self.engine - .batch_modeling_cmd( - exec_state.id_generator.next_uuid(), - SourceRange::default(), - &ModelingCmd::from(mcmd::SetSceneUnits { - unit: match self.settings.units { - UnitLength::Cm => kcmc::units::UnitLength::Centimeters, - UnitLength::Ft => kcmc::units::UnitLength::Feet, - UnitLength::In => kcmc::units::UnitLength::Inches, - UnitLength::M => kcmc::units::UnitLength::Meters, - UnitLength::Mm => kcmc::units::UnitLength::Millimeters, - UnitLength::Yd => kcmc::units::UnitLength::Yards, - }, - }), - ) - .await?; + + // Re-apply the settings, in case the cache was busted. + self.engine.reapply_settings(&self.settings, Default::default()).await?; self.inner_execute(&cache_result.program, exec_state, crate::execution::BodyType::Root) .await?; @@ -2147,23 +2183,8 @@ impl ExecutorContext { self.settings.units = units; } - /// Execute the program, then get a PNG screenshot. - pub async fn execute_and_prepare_snapshot( - &self, - program: &Program, - exec_state: &mut ExecState, - ) -> std::result::Result { - self.execute_and_prepare(program, exec_state).await - } - - /// Execute the program, return the interpreter and outputs. - pub async fn execute_and_prepare( - &self, - program: &Program, - exec_state: &mut ExecState, - ) -> std::result::Result { - self.run(program.clone().into(), exec_state).await?; - + /// Get a snapshot of the current scene. + pub async fn prepare_snapshot(&self) -> std::result::Result { // Zoom to fit. self.engine .send_modeling_cmd( @@ -2199,6 +2220,17 @@ impl ExecutorContext { }; Ok(contents) } + + /// Execute the program, then get a PNG screenshot. + pub async fn execute_and_prepare_snapshot( + &self, + program: &Program, + exec_state: &mut ExecState, + ) -> std::result::Result { + self.run(program.clone().into(), exec_state).await?; + + self.prepare_snapshot().await + } } /// For each argument given, @@ -2378,9 +2410,12 @@ mod tests { use pretty_assertions::assert_eq; use super::*; - use crate::parsing::ast::types::{DefaultParamVal, Identifier, Node, Parameter}; + use crate::{ + parsing::ast::types::{DefaultParamVal, Identifier, Node, Parameter}, + OldAstState, + }; - pub async fn parse_execute(code: &str) -> Result { + pub async fn parse_execute(code: &str) -> Result<(Program, ExecutorContext, ExecState)> { let program = Program::parse_no_errs(code)?; let ctx = ExecutorContext { @@ -2391,9 +2426,9 @@ mod tests { context_type: ContextType::Mock, }; let mut exec_state = ExecState::default(); - ctx.run(program.into(), &mut exec_state).await?; + ctx.run(program.clone().into(), &mut exec_state).await?; - Ok(exec_state.memory) + Ok((program, ctx, exec_state)) } /// Convenience function to get a JSON value from memory and unwrap. @@ -2804,36 +2839,39 @@ let shape = layer() |> patternTransform(10, transform, %) #[tokio::test(flavor = "multi_thread")] async fn test_math_execute_with_functions() { let ast = r#"const myVar = 2 + min(100, -1 + legLen(5, 3))"#; - let memory = parse_execute(ast).await.unwrap(); - assert_eq!(5.0, mem_get_json(&memory, "myVar").as_f64().unwrap()); + let (_, _, exec_state) = parse_execute(ast).await.unwrap(); + assert_eq!(5.0, mem_get_json(&exec_state.memory, "myVar").as_f64().unwrap()); } #[tokio::test(flavor = "multi_thread")] async fn test_math_execute() { let ast = r#"const myVar = 1 + 2 * (3 - 4) / -5 + 6"#; - let memory = parse_execute(ast).await.unwrap(); - assert_eq!(7.4, mem_get_json(&memory, "myVar").as_f64().unwrap()); + let (_, _, exec_state) = parse_execute(ast).await.unwrap(); + assert_eq!(7.4, mem_get_json(&exec_state.memory, "myVar").as_f64().unwrap()); } #[tokio::test(flavor = "multi_thread")] async fn test_math_execute_start_negative() { let ast = r#"const myVar = -5 + 6"#; - let memory = parse_execute(ast).await.unwrap(); - assert_eq!(1.0, mem_get_json(&memory, "myVar").as_f64().unwrap()); + let (_, _, exec_state) = parse_execute(ast).await.unwrap(); + assert_eq!(1.0, mem_get_json(&exec_state.memory, "myVar").as_f64().unwrap()); } #[tokio::test(flavor = "multi_thread")] async fn test_math_execute_with_pi() { let ast = r#"const myVar = pi() * 2"#; - let memory = parse_execute(ast).await.unwrap(); - assert_eq!(std::f64::consts::TAU, mem_get_json(&memory, "myVar").as_f64().unwrap()); + let (_, _, exec_state) = parse_execute(ast).await.unwrap(); + assert_eq!( + std::f64::consts::TAU, + mem_get_json(&exec_state.memory, "myVar").as_f64().unwrap() + ); } #[tokio::test(flavor = "multi_thread")] async fn test_math_define_decimal_without_leading_zero() { let ast = r#"let thing = .4 + 7"#; - let memory = parse_execute(ast).await.unwrap(); - assert_eq!(7.4, mem_get_json(&memory, "thing").as_f64().unwrap()); + let (_, _, exec_state) = parse_execute(ast).await.unwrap(); + assert_eq!(7.4, mem_get_json(&exec_state.memory, "thing").as_f64().unwrap()); } #[tokio::test(flavor = "multi_thread")] @@ -2872,11 +2910,11 @@ fn check = (x) => { } check(false) "#; - let mem = parse_execute(ast).await.unwrap(); - assert_eq!(false, mem_get_json(&mem, "notTrue").as_bool().unwrap()); - assert_eq!(true, mem_get_json(&mem, "notFalse").as_bool().unwrap()); - assert_eq!(true, mem_get_json(&mem, "c").as_bool().unwrap()); - assert_eq!(false, mem_get_json(&mem, "d").as_bool().unwrap()); + let (_, _, exec_state) = parse_execute(ast).await.unwrap(); + assert_eq!(false, mem_get_json(&exec_state.memory, "notTrue").as_bool().unwrap()); + assert_eq!(true, mem_get_json(&exec_state.memory, "notFalse").as_bool().unwrap()); + assert_eq!(true, mem_get_json(&exec_state.memory, "c").as_bool().unwrap()); + assert_eq!(false, mem_get_json(&exec_state.memory, "d").as_bool().unwrap()); } #[tokio::test(flavor = "multi_thread")] @@ -3258,4 +3296,310 @@ let w = f() + f() let json = serde_json::to_string(&mem).unwrap(); assert_eq!(json, r#"{"type":"Solids","value":[]}"#); } + + // Easy case where we have no old ast and memory. + // We need to re-execute everything. + #[tokio::test(flavor = "multi_thread")] + async fn test_get_changed_program_no_old_information() { + let new = r#"// Remove the end face for the extrusion. +firstSketch = startSketchOn('XY') + |> startProfileAt([-12, 12], %) + |> line([24, 0], %) + |> line([0, -24], %) + |> line([-24, 0], %) + |> close(%) + |> extrude(6, %) + +// Remove the end face for the extrusion. +shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; + let (program, ctx, _) = parse_execute(new).await.unwrap(); + + let result = ctx + .get_changed_program(CacheInformation { + old: None, + new_ast: program.ast.clone(), + }) + .await; + + assert!(result.is_some()); + + let result = result.unwrap(); + + assert_eq!(result.program, program.ast); + assert!(result.clear_scene); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_get_changed_program_same_code() { + let new = r#"// Remove the end face for the extrusion. +firstSketch = startSketchOn('XY') + |> startProfileAt([-12, 12], %) + |> line([24, 0], %) + |> line([0, -24], %) + |> line([-24, 0], %) + |> close(%) + |> extrude(6, %) + +// Remove the end face for the extrusion. +shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; + + let (program, ctx, exec_state) = parse_execute(new).await.unwrap(); + + let result = ctx + .get_changed_program(CacheInformation { + old: Some(OldAstState { + ast: program.ast.clone(), + exec_state, + settings: Default::default(), + }), + new_ast: program.ast.clone(), + }) + .await; + + assert_eq!(result, None); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_get_changed_program_same_code_changed_whitespace() { + let old = r#" // Remove the end face for the extrusion. +firstSketch = startSketchOn('XY') + |> startProfileAt([-12, 12], %) + |> line([24, 0], %) + |> line([0, -24], %) + |> line([-24, 0], %) + |> close(%) + |> extrude(6, %) + +// Remove the end face for the extrusion. +shell({ faces = ['end'], thickness = 0.25 }, firstSketch) "#; + + let new = r#"// Remove the end face for the extrusion. +firstSketch = startSketchOn('XY') + |> startProfileAt([-12, 12], %) + |> line([24, 0], %) + |> line([0, -24], %) + |> line([-24, 0], %) + |> close(%) + |> extrude(6, %) + +// Remove the end face for the extrusion. +shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; + + let (program_old, ctx, exec_state) = parse_execute(old).await.unwrap(); + + let program_new = crate::Program::parse_no_errs(new).unwrap(); + + let result = ctx + .get_changed_program(CacheInformation { + old: Some(OldAstState { + ast: program_old.ast.clone(), + exec_state, + settings: Default::default(), + }), + new_ast: program_new.ast.clone(), + }) + .await; + + assert_eq!(result, None); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_get_changed_program_same_code_changed_code_comment_start_of_program() { + let old = r#" // Removed the end face for the extrusion. +firstSketch = startSketchOn('XY') + |> startProfileAt([-12, 12], %) + |> line([24, 0], %) + |> line([0, -24], %) + |> line([-24, 0], %) + |> close(%) + |> extrude(6, %) + +// Remove the end face for the extrusion. +shell({ faces = ['end'], thickness = 0.25 }, firstSketch) "#; + + let new = r#"// Remove the end face for the extrusion. +firstSketch = startSketchOn('XY') + |> startProfileAt([-12, 12], %) + |> line([24, 0], %) + |> line([0, -24], %) + |> line([-24, 0], %) + |> close(%) + |> extrude(6, %) + +// Remove the end face for the extrusion. +shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; + + let (program, ctx, exec_state) = parse_execute(old).await.unwrap(); + + let program_new = crate::Program::parse_no_errs(new).unwrap(); + + let result = ctx + .get_changed_program(CacheInformation { + old: Some(OldAstState { + ast: program.ast.clone(), + exec_state, + settings: Default::default(), + }), + new_ast: program_new.ast.clone(), + }) + .await; + + assert_eq!(result, None); + } + + #[tokio::test(flavor = "multi_thread")] + async fn test_get_changed_program_same_code_changed_code_comments() { + let old = r#" // Removed the end face for the extrusion. +firstSketch = startSketchOn('XY') + |> startProfileAt([-12, 12], %) + |> line([24, 0], %) + |> line([0, -24], %) + |> line([-24, 0], %) // my thing + |> close(%) + |> extrude(6, %) + +// Remove the end face for the extrusion. +shell({ faces = ['end'], thickness = 0.25 }, firstSketch) "#; + + let new = r#"// Remove the end face for the extrusion. +firstSketch = startSketchOn('XY') + |> startProfileAt([-12, 12], %) + |> line([24, 0], %) + |> line([0, -24], %) + |> line([-24, 0], %) + |> close(%) + |> extrude(6, %) + +// Remove the end face for the extrusion. +shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; + + let (program, ctx, exec_state) = parse_execute(old).await.unwrap(); + + let program_new = crate::Program::parse_no_errs(new).unwrap(); + + let result = ctx + .get_changed_program(CacheInformation { + old: Some(OldAstState { + ast: program.ast.clone(), + exec_state, + settings: Default::default(), + }), + new_ast: program_new.ast.clone(), + }) + .await; + + assert!(result.is_some()); + + let result = result.unwrap(); + + assert_eq!(result.program, program_new.ast); + assert!(result.clear_scene); + } + + // Changing the units with the exact same file should bust the cache. + #[tokio::test(flavor = "multi_thread")] + async fn test_get_changed_program_same_code_but_different_units() { + let new = r#"// Remove the end face for the extrusion. +firstSketch = startSketchOn('XY') + |> startProfileAt([-12, 12], %) + |> line([24, 0], %) + |> line([0, -24], %) + |> line([-24, 0], %) + |> close(%) + |> extrude(6, %) + +// Remove the end face for the extrusion. +shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; + + let (program, mut ctx, exec_state) = parse_execute(new).await.unwrap(); + + // Change the settings to cm. + ctx.settings.units = crate::UnitLength::Cm; + + let result = ctx + .get_changed_program(CacheInformation { + old: Some(OldAstState { + ast: program.ast.clone(), + exec_state, + settings: Default::default(), + }), + new_ast: program.ast.clone(), + }) + .await; + + assert!(result.is_some()); + + let result = result.unwrap(); + + assert_eq!(result.program, program.ast); + assert!(result.clear_scene); + } + + // Changing the grid settings with the exact same file should NOT bust the cache. + #[tokio::test(flavor = "multi_thread")] + async fn test_get_changed_program_same_code_but_different_grid_setting() { + let new = r#"// Remove the end face for the extrusion. +firstSketch = startSketchOn('XY') + |> startProfileAt([-12, 12], %) + |> line([24, 0], %) + |> line([0, -24], %) + |> line([-24, 0], %) + |> close(%) + |> extrude(6, %) + +// Remove the end face for the extrusion. +shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; + + let (program, mut ctx, exec_state) = parse_execute(new).await.unwrap(); + + // Change the settings. + ctx.settings.show_grid = !ctx.settings.show_grid; + + let result = ctx + .get_changed_program(CacheInformation { + old: Some(OldAstState { + ast: program.ast.clone(), + exec_state, + settings: Default::default(), + }), + new_ast: program.ast.clone(), + }) + .await; + + assert_eq!(result, None); + } + + // Changing the edge visibility settings with the exact same file should NOT bust the cache. + #[tokio::test(flavor = "multi_thread")] + async fn test_get_changed_program_same_code_but_different_edge_visiblity_setting() { + let new = r#"// Remove the end face for the extrusion. +firstSketch = startSketchOn('XY') + |> startProfileAt([-12, 12], %) + |> line([24, 0], %) + |> line([0, -24], %) + |> line([-24, 0], %) + |> close(%) + |> extrude(6, %) + +// Remove the end face for the extrusion. +shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; + + let (program, mut ctx, exec_state) = parse_execute(new).await.unwrap(); + + // Change the settings. + ctx.settings.highlight_edges = !ctx.settings.highlight_edges; + + let result = ctx + .get_changed_program(CacheInformation { + old: Some(OldAstState { + ast: program.ast.clone(), + exec_state, + settings: Default::default(), + }), + new_ast: program.ast.clone(), + }) + .await; + + assert_eq!(result, None); + } } diff --git a/src/wasm-lib/kcl/src/lib.rs b/src/wasm-lib/kcl/src/lib.rs index 886b92b75..c6d8dbb5d 100644 --- a/src/wasm-lib/kcl/src/lib.rs +++ b/src/wasm-lib/kcl/src/lib.rs @@ -82,16 +82,15 @@ mod wasm; pub use coredump::CoreDump; pub use engine::{EngineManager, ExecutionKind}; pub use errors::{CompilationError, ConnectionError, ExecError, KclError}; -pub use execution::{ExecState, ExecutorContext, ExecutorSettings}; +pub use execution::{ + cache::{CacheInformation, OldAstState}, + ExecState, ExecutorContext, ExecutorSettings, +}; pub use lsp::{ copilot::Backend as CopilotLspBackend, kcl::{Backend as KclLspBackend, Server as KclLspServerSubCommand}, }; -pub use parsing::ast::{ - cache::{CacheInformation, OldAstState}, - modify::modify_ast_for_sketch, - types::FormatOptions, -}; +pub use parsing::ast::{modify::modify_ast_for_sketch, types::FormatOptions}; pub use settings::types::{project::ProjectConfiguration, Configuration, UnitLength}; pub use source_range::{ModuleId, SourceRange}; diff --git a/src/wasm-lib/kcl/src/lsp/kcl/mod.rs b/src/wasm-lib/kcl/src/lsp/kcl/mod.rs index 324612cf9..cbdd2f3fd 100644 --- a/src/wasm-lib/kcl/src/lsp/kcl/mod.rs +++ b/src/wasm-lib/kcl/src/lsp/kcl/mod.rs @@ -45,14 +45,11 @@ use crate::{ errors::Suggestion, lsp::{backend::Backend as _, util::IntoDiagnostic}, parsing::{ - ast::{ - cache::{CacheInformation, OldAstState}, - types::{Expr, Node, VariableKind}, - }, + ast::types::{Expr, Node, VariableKind}, token::TokenStream, PIPE_OPERATOR, }, - ModuleId, Program, SourceRange, + CacheInformation, ModuleId, OldAstState, Program, SourceRange, }; const SEMANTIC_TOKEN_TYPES: [SemanticTokenType; 10] = [ SemanticTokenType::NUMBER, diff --git a/src/wasm-lib/kcl/src/parsing/ast/cache.rs b/src/wasm-lib/kcl/src/parsing/ast/cache.rs deleted file mode 100644 index 37383e6e5..000000000 --- a/src/wasm-lib/kcl/src/parsing/ast/cache.rs +++ /dev/null @@ -1,373 +0,0 @@ -//! Functions for helping with caching an ast and finding the parts the changed. - -use schemars::JsonSchema; -use serde::{Deserialize, Serialize}; - -use crate::{ - execution::ExecState, - parsing::ast::types::{Node, Program}, -}; - -/// Information for the caching an AST and smartly re-executing it if we can. -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] -pub struct CacheInformation { - /// The old information. - pub old: Option, - /// The new ast to executed. - pub new_ast: Node, -} - -/// The old ast and program memory. -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] -pub struct OldAstState { - /// The ast. - pub ast: Node, - /// The exec state. - pub exec_state: ExecState, - /// The last settings used for execution. - pub settings: crate::execution::ExecutorSettings, -} - -impl From for CacheInformation { - fn from(program: crate::Program) -> Self { - CacheInformation { - old: None, - new_ast: program.ast, - } - } -} - -/// The result of a cache check. -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] -#[ts(export)] -pub struct CacheResult { - /// Should we clear the scene and start over? - pub clear_scene: bool, - /// The program that needs to be executed. - pub program: Node, -} - -// Given an old ast, old program memory and new ast, find the parts of the code that need to be -// re-executed. -// This function should never error, because in the case of any internal error, we should just pop -// the cache. -pub fn get_changed_program( - info: CacheInformation, - new_settings: &crate::execution::ExecutorSettings, -) -> Option { - let Some(old) = info.old else { - // We have no old info, we need to re-execute the whole thing. - return Some(CacheResult { - clear_scene: true, - program: info.new_ast, - }); - }; - - // If the settings are different we need to bust the cache. - // We specifically do this before checking if they are the exact same. - if old.settings != *new_settings { - return Some(CacheResult { - clear_scene: true, - program: info.new_ast, - }); - } - - // If the ASTs are the EXACT same we return None. - // We don't even need to waste time computing the digests. - if old.ast == info.new_ast { - return None; - } - - let mut old_ast = old.ast.inner; - old_ast.compute_digest(); - let mut new_ast = info.new_ast.inner.clone(); - new_ast.compute_digest(); - - // Check if the digest is the same. - if old_ast.digest == new_ast.digest { - return None; - } - - // Check if the changes were only to Non-code areas, like comments or whitespace. - - // For any unhandled cases just re-execute the whole thing. - Some(CacheResult { - clear_scene: true, - program: info.new_ast, - }) -} - -#[cfg(test)] -mod tests { - use std::sync::Arc; - - use anyhow::Result; - use pretty_assertions::assert_eq; - - use super::*; - - async fn execute(program: &crate::Program) -> Result { - let ctx = crate::execution::ExecutorContext { - engine: Arc::new(Box::new(crate::engine::conn_mock::EngineConnection::new().await?)), - fs: Arc::new(crate::fs::FileManager::new()), - stdlib: Arc::new(crate::std::StdLib::new()), - settings: Default::default(), - context_type: crate::execution::ContextType::Mock, - }; - let mut exec_state = crate::execution::ExecState::default(); - ctx.run(program.clone().into(), &mut exec_state).await?; - - Ok(exec_state) - } - - // Easy case where we have no old ast and memory. - // We need to re-execute everything. - #[test] - fn test_get_changed_program_no_old_information() { - let new = r#"// Remove the end face for the extrusion. -firstSketch = startSketchOn('XY') - |> startProfileAt([-12, 12], %) - |> line([24, 0], %) - |> line([0, -24], %) - |> line([-24, 0], %) - |> close(%) - |> extrude(6, %) - -// Remove the end face for the extrusion. -shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; - let program = crate::Program::parse_no_errs(new).unwrap().ast; - - let result = get_changed_program( - CacheInformation { - old: None, - new_ast: program.clone(), - }, - &Default::default(), - ); - - assert!(result.is_some()); - - let result = result.unwrap(); - - assert_eq!(result.program, program); - assert!(result.clear_scene); - } - - #[tokio::test(flavor = "multi_thread")] - async fn test_get_changed_program_same_code() { - let new = r#"// Remove the end face for the extrusion. -firstSketch = startSketchOn('XY') - |> startProfileAt([-12, 12], %) - |> line([24, 0], %) - |> line([0, -24], %) - |> line([-24, 0], %) - |> close(%) - |> extrude(6, %) - -// Remove the end face for the extrusion. -shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; - let program = crate::Program::parse_no_errs(new).unwrap(); - - let executed = execute(&program).await.unwrap(); - - let result = get_changed_program( - CacheInformation { - old: Some(OldAstState { - ast: program.ast.clone(), - exec_state: executed, - settings: Default::default(), - }), - new_ast: program.ast.clone(), - }, - &Default::default(), - ); - - assert_eq!(result, None); - } - - #[tokio::test(flavor = "multi_thread")] - async fn test_get_changed_program_same_code_changed_whitespace() { - let old = r#" // Remove the end face for the extrusion. -firstSketch = startSketchOn('XY') - |> startProfileAt([-12, 12], %) - |> line([24, 0], %) - |> line([0, -24], %) - |> line([-24, 0], %) - |> close(%) - |> extrude(6, %) - -// Remove the end face for the extrusion. -shell({ faces = ['end'], thickness = 0.25 }, firstSketch) "#; - - let new = r#"// Remove the end face for the extrusion. -firstSketch = startSketchOn('XY') - |> startProfileAt([-12, 12], %) - |> line([24, 0], %) - |> line([0, -24], %) - |> line([-24, 0], %) - |> close(%) - |> extrude(6, %) - -// Remove the end face for the extrusion. -shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; - let program_old = crate::Program::parse_no_errs(old).unwrap(); - - let executed = execute(&program_old).await.unwrap(); - - let program_new = crate::Program::parse_no_errs(new).unwrap(); - - let result = get_changed_program( - CacheInformation { - old: Some(OldAstState { - ast: program_old.ast.clone(), - exec_state: executed, - settings: Default::default(), - }), - new_ast: program_new.ast.clone(), - }, - &Default::default(), - ); - - assert_eq!(result, None); - } - - #[tokio::test(flavor = "multi_thread")] - async fn test_get_changed_program_same_code_changed_code_comment_start_of_program() { - let old = r#" // Removed the end face for the extrusion. -firstSketch = startSketchOn('XY') - |> startProfileAt([-12, 12], %) - |> line([24, 0], %) - |> line([0, -24], %) - |> line([-24, 0], %) - |> close(%) - |> extrude(6, %) - -// Remove the end face for the extrusion. -shell({ faces = ['end'], thickness = 0.25 }, firstSketch) "#; - - let new = r#"// Remove the end face for the extrusion. -firstSketch = startSketchOn('XY') - |> startProfileAt([-12, 12], %) - |> line([24, 0], %) - |> line([0, -24], %) - |> line([-24, 0], %) - |> close(%) - |> extrude(6, %) - -// Remove the end face for the extrusion. -shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; - let program_old = crate::Program::parse_no_errs(old).unwrap(); - - let executed = execute(&program_old).await.unwrap(); - - let program_new = crate::Program::parse_no_errs(new).unwrap(); - - let result = get_changed_program( - CacheInformation { - old: Some(OldAstState { - ast: program_old.ast.clone(), - exec_state: executed, - settings: Default::default(), - }), - new_ast: program_new.ast.clone(), - }, - &Default::default(), - ); - - assert_eq!(result, None); - } - - #[tokio::test(flavor = "multi_thread")] - async fn test_get_changed_program_same_code_changed_code_comments() { - let old = r#" // Removed the end face for the extrusion. -firstSketch = startSketchOn('XY') - |> startProfileAt([-12, 12], %) - |> line([24, 0], %) - |> line([0, -24], %) - |> line([-24, 0], %) // my thing - |> close(%) - |> extrude(6, %) - -// Remove the end face for the extrusion. -shell({ faces = ['end'], thickness = 0.25 }, firstSketch) "#; - - let new = r#"// Remove the end face for the extrusion. -firstSketch = startSketchOn('XY') - |> startProfileAt([-12, 12], %) - |> line([24, 0], %) - |> line([0, -24], %) - |> line([-24, 0], %) - |> close(%) - |> extrude(6, %) - -// Remove the end face for the extrusion. -shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; - let program_old = crate::Program::parse_no_errs(old).unwrap(); - - let executed = execute(&program_old).await.unwrap(); - - let program_new = crate::Program::parse_no_errs(new).unwrap(); - - let result = get_changed_program( - CacheInformation { - old: Some(OldAstState { - ast: program_old.ast.clone(), - exec_state: executed, - settings: Default::default(), - }), - new_ast: program_new.ast.clone(), - }, - &Default::default(), - ); - - assert!(result.is_some()); - - let result = result.unwrap(); - - assert_eq!(result.program, program_new.ast); - assert!(result.clear_scene); - } - - // Changing the units with the exact same file should bust the cache. - #[tokio::test(flavor = "multi_thread")] - async fn test_get_changed_program_same_code_but_different_units() { - let new = r#"// Remove the end face for the extrusion. -firstSketch = startSketchOn('XY') - |> startProfileAt([-12, 12], %) - |> line([24, 0], %) - |> line([0, -24], %) - |> line([-24, 0], %) - |> close(%) - |> extrude(6, %) - -// Remove the end face for the extrusion. -shell({ faces = ['end'], thickness = 0.25 }, firstSketch)"#; - let program = crate::Program::parse_no_errs(new).unwrap(); - - let executed = execute(&program).await.unwrap(); - - let result = get_changed_program( - CacheInformation { - old: Some(OldAstState { - ast: program.ast.clone(), - exec_state: executed, - settings: Default::default(), - }), - new_ast: program.ast.clone(), - }, - &crate::ExecutorSettings { - units: crate::UnitLength::Cm, - ..Default::default() - }, - ); - - assert!(result.is_some()); - - let result = result.unwrap(); - - assert_eq!(result.program, program.ast); - assert!(result.clear_scene); - } -} diff --git a/src/wasm-lib/kcl/src/parsing/ast/mod.rs b/src/wasm-lib/kcl/src/parsing/ast/mod.rs index f6ba6e245..c44a59265 100644 --- a/src/wasm-lib/kcl/src/parsing/ast/mod.rs +++ b/src/wasm-lib/kcl/src/parsing/ast/mod.rs @@ -1,4 +1,3 @@ -pub(crate) mod cache; pub(crate) mod digest; pub mod modify; pub mod types; diff --git a/src/wasm-lib/kcl/src/test_server.rs b/src/wasm-lib/kcl/src/test_server.rs index f2ae47f32..f7246145f 100644 --- a/src/wasm-lib/kcl/src/test_server.rs +++ b/src/wasm-lib/kcl/src/test_server.rs @@ -55,7 +55,11 @@ async fn do_execute_and_snapshot( program: Program, ) -> Result<(crate::execution::ExecState, image::DynamicImage), ExecError> { let mut exec_state = Default::default(); - let snapshot_png_bytes = ctx.execute_and_prepare(&program, &mut exec_state).await?.contents.0; + let snapshot_png_bytes = ctx + .execute_and_prepare_snapshot(&program, &mut exec_state) + .await? + .contents + .0; // Decode the snapshot, return it. let img = image::ImageReader::new(std::io::Cursor::new(snapshot_png_bytes)) diff --git a/src/wasm-lib/src/wasm.rs b/src/wasm-lib/src/wasm.rs index 5fb9cb5e2..022efb835 100644 --- a/src/wasm-lib/src/wasm.rs +++ b/src/wasm-lib/src/wasm.rs @@ -1,6 +1,6 @@ //! Wasm bindings for `kcl`. -use std::{str::FromStr, sync::Arc}; +use std::sync::Arc; use futures::stream::TryStreamExt; use gloo_utils::format::JsValueSerdeExt; @@ -56,10 +56,10 @@ pub async fn clear_scene_and_bust_cache( // wasm_bindgen wrapper for execute #[wasm_bindgen] -pub async fn execute_wasm( +pub async fn execute( program_ast_json: &str, program_memory_override_str: &str, - units: &str, + settings: &str, engine_manager: kcl_lib::wasm_engine::EngineCommandManager, fs_manager: kcl_lib::wasm_engine::FileSystemManager, ) -> Result { @@ -73,11 +73,11 @@ pub async fn execute_wasm( // You cannot override the memory in non-mock mode. let is_mock = program_memory_override.is_some(); - let units = kcl_lib::UnitLength::from_str(units).map_err(|e| e.to_string())?; + let settings: kcl_lib::Configuration = serde_json::from_str(settings).map_err(|e| e.to_string())?; let ctx = if is_mock { - kcl_lib::ExecutorContext::new_mock(fs_manager, units).await? + kcl_lib::ExecutorContext::new_mock(fs_manager, settings.into()).await? } else { - kcl_lib::ExecutorContext::new(engine_manager, fs_manager, units).await? + kcl_lib::ExecutorContext::new(engine_manager, fs_manager, settings.into()).await? }; let mut exec_state = ExecState::default(); @@ -168,23 +168,6 @@ pub async fn make_default_planes( JsValue::from_serde(&default_planes).map_err(|e| e.to_string()) } -// wasm_bindgen wrapper for modifying the grid -#[wasm_bindgen] -pub async fn modify_grid( - engine_manager: kcl_lib::wasm_engine::EngineCommandManager, - hidden: bool, -) -> Result<(), String> { - console_error_panic_hook::set_once(); - // deserialize the ast from a stringified json - - let engine = kcl_lib::wasm_engine::EngineConnection::new(engine_manager) - .await - .map_err(|e| format!("{:?}", e))?; - engine.modify_grid(hidden).await.map_err(String::from)?; - - Ok(()) -} - // wasm_bindgen wrapper for execute #[wasm_bindgen] pub async fn modify_ast_for_sketch_wasm( @@ -296,7 +279,7 @@ impl ServerConfig { pub async fn kcl_lsp_run( config: ServerConfig, engine_manager: Option, - units: &str, + settings: Option, token: String, baseurl: String, ) -> Result<(), JsValue> { @@ -309,8 +292,12 @@ pub async fn kcl_lsp_run( } = config; let executor_ctx = if let Some(engine_manager) = engine_manager { - let units = kcl_lib::UnitLength::from_str(units).map_err(|e| e.to_string())?; - Some(kcl_lib::ExecutorContext::new(engine_manager, fs.clone(), units).await?) + let settings: kcl_lib::Configuration = if let Some(settings) = settings { + serde_json::from_str(&settings).map_err(|e| e.to_string())? + } else { + Default::default() + }; + Some(kcl_lib::ExecutorContext::new(engine_manager, fs.clone(), settings.into()).await?) } else { None }; diff --git a/src/wasm-lib/tests/executor/cache.rs b/src/wasm-lib/tests/executor/cache.rs new file mode 100644 index 000000000..6c6a76174 --- /dev/null +++ b/src/wasm-lib/tests/executor/cache.rs @@ -0,0 +1,216 @@ +//! Cache testing framework. + +use anyhow::Result; +use kcl_lib::ExecError; + +struct Variation<'a> { + code: &'a str, + settings: &'a kcl_lib::ExecutorSettings, +} + +async fn cache_test(test_name: &str, variations: Vec>) -> Result> { + let first = variations + .first() + .ok_or_else(|| anyhow::anyhow!("No variations provided for test '{}'", test_name))?; + + let mut ctx = kcl_lib::ExecutorContext::new_with_client(first.settings.clone(), None, None).await?; + let mut exec_state = kcl_lib::ExecState::default(); + + let mut old_ast_state = None; + let mut img_results = Vec::new(); + for (index, variation) in variations.iter().enumerate() { + let program = kcl_lib::Program::parse_no_errs(variation.code)?; + + // set the new settings. + ctx.settings = variation.settings.clone(); + + ctx.run( + kcl_lib::CacheInformation { + old: old_ast_state, + new_ast: program.ast.clone(), + }, + &mut exec_state, + ) + .await?; + let snapshot_png_bytes = ctx.prepare_snapshot().await?.contents.0; + + // Decode the snapshot, return it. + let img = image::ImageReader::new(std::io::Cursor::new(snapshot_png_bytes)) + .with_guessed_format() + .map_err(|e| ExecError::BadPng(e.to_string())) + .and_then(|x| x.decode().map_err(|e| ExecError::BadPng(e.to_string())))?; + // Save the snapshot. + let path = crate::assert_out(&format!("cache_{}_{}", test_name, index), &img); + + img_results.push((path, img)); + + // Prepare the last state. + old_ast_state = Some(kcl_lib::OldAstState { + ast: program.ast, + exec_state: exec_state.clone(), + settings: variation.settings.clone(), + }); + } + + Ok(img_results) +} + +#[tokio::test(flavor = "multi_thread")] +async fn kcl_test_cache_change_units_changes_output() { + let code = r#"part001 = startSketchOn('XY') + |> startProfileAt([5.5229, 5.25217], %) + |> line([10.50433, -1.19122], %) + |> line([8.01362, -5.48731], %) + |> line([-1.02877, -6.76825], %) + |> line([-11.53311, 2.81559], %) + |> close(%) + |> extrude(4, %) +"#; + + let result = cache_test( + "change_units_changes_output", + vec![ + Variation { + code, + settings: &kcl_lib::ExecutorSettings { + units: kcl_lib::UnitLength::In, + ..Default::default() + }, + }, + Variation { + code, + settings: &kcl_lib::ExecutorSettings { + units: kcl_lib::UnitLength::Mm, + ..Default::default() + }, + }, + ], + ) + .await + .unwrap(); + + let first = result.first().unwrap(); + let second = result.last().unwrap(); + + assert!(first.1 != second.1); +} + +#[tokio::test(flavor = "multi_thread")] +async fn kcl_test_cache_change_grid_visualizes_grid_off_to_on() { + let code = r#"part001 = startSketchOn('XY') + |> startProfileAt([5.5229, 5.25217], %) + |> line([10.50433, -1.19122], %) + |> line([8.01362, -5.48731], %) + |> line([-1.02877, -6.76825], %) + |> line([-11.53311, 2.81559], %) + |> close(%) + |> extrude(4, %) +"#; + + let result = cache_test( + "change_grid_visualizes_grid_off_to_on", + vec![ + Variation { + code, + settings: &kcl_lib::ExecutorSettings { + show_grid: false, + ..Default::default() + }, + }, + Variation { + code, + settings: &kcl_lib::ExecutorSettings { + show_grid: true, + ..Default::default() + }, + }, + ], + ) + .await + .unwrap(); + + let first = result.first().unwrap(); + let second = result.last().unwrap(); + + assert!(first.1 != second.1); +} + +#[tokio::test(flavor = "multi_thread")] +async fn kcl_test_cache_change_grid_visualizes_grid_on_to_off() { + let code = r#"part001 = startSketchOn('XY') + |> startProfileAt([5.5229, 5.25217], %) + |> line([10.50433, -1.19122], %) + |> line([8.01362, -5.48731], %) + |> line([-1.02877, -6.76825], %) + |> line([-11.53311, 2.81559], %) + |> close(%) + |> extrude(4, %) +"#; + + let result = cache_test( + "change_grid_visualizes_grid_on_to_off", + vec![ + Variation { + code, + settings: &kcl_lib::ExecutorSettings { + show_grid: true, + ..Default::default() + }, + }, + Variation { + code, + settings: &kcl_lib::ExecutorSettings { + show_grid: false, + ..Default::default() + }, + }, + ], + ) + .await + .unwrap(); + + let first = result.first().unwrap(); + let second = result.last().unwrap(); + + assert!(first.1 != second.1); +} + +#[tokio::test(flavor = "multi_thread")] +async fn kcl_test_cache_change_highlight_edges_changes_visual() { + let code = r#"part001 = startSketchOn('XY') + |> startProfileAt([5.5229, 5.25217], %) + |> line([10.50433, -1.19122], %) + |> line([8.01362, -5.48731], %) + |> line([-1.02877, -6.76825], %) + |> line([-11.53311, 2.81559], %) + |> close(%) + |> extrude(4, %) +"#; + + let result = cache_test( + "change_highlight_edges_changes_visual", + vec![ + Variation { + code, + settings: &kcl_lib::ExecutorSettings { + highlight_edges: true, + ..Default::default() + }, + }, + Variation { + code, + settings: &kcl_lib::ExecutorSettings { + highlight_edges: false, + ..Default::default() + }, + }, + ], + ) + .await + .unwrap(); + + let first = result.first().unwrap(); + let second = result.last().unwrap(); + + assert!(first.1 != second.1); +} diff --git a/src/wasm-lib/tests/executor/main.rs b/src/wasm-lib/tests/executor/main.rs index 6aa5c3a02..3006fcf1c 100644 --- a/src/wasm-lib/tests/executor/main.rs +++ b/src/wasm-lib/tests/executor/main.rs @@ -1,3 +1,5 @@ +mod cache; + use kcl_lib::{ test_server::{execute_and_snapshot, execute_and_snapshot_no_auth}, UnitLength, @@ -5,7 +7,7 @@ use kcl_lib::{ /// The minimum permissible difference between asserted twenty-twenty images. /// i.e. how different the current model snapshot can be from the previous saved one. -const MIN_DIFF: f64 = 0.99; +pub(crate) const MIN_DIFF: f64 = 0.99; macro_rules! kcl_input { ($file:literal) => { @@ -13,8 +15,11 @@ macro_rules! kcl_input { }; } -fn assert_out(test_name: &str, result: &image::DynamicImage) { - twenty_twenty::assert_image(format!("tests/executor/outputs/{test_name}.png"), result, MIN_DIFF); +pub(crate) fn assert_out(test_name: &str, result: &image::DynamicImage) -> String { + let path = format!("tests/executor/outputs/{test_name}.png"); + twenty_twenty::assert_image(&path, result, MIN_DIFF); + + path } #[tokio::test(flavor = "multi_thread")] diff --git a/src/wasm-lib/tests/executor/outputs/cache_change_grid_visualizes_grid_off_to_on_0.png b/src/wasm-lib/tests/executor/outputs/cache_change_grid_visualizes_grid_off_to_on_0.png new file mode 100644 index 0000000000000000000000000000000000000000..8f97850b798bec922f5db9d51d6a9e2d86f5d570 GIT binary patch literal 47712 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 literal 0 HcmV?d00001 diff --git a/src/wasm-lib/tests/executor/outputs/cache_change_grid_visualizes_grid_off_to_on_1.png b/src/wasm-lib/tests/executor/outputs/cache_change_grid_visualizes_grid_off_to_on_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3425e99c6ae2572d11bf9e7901ace96986e92cb9 GIT binary patch literal 116507 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 literal 0 HcmV?d00001 diff --git a/src/wasm-lib/tests/executor/outputs/cache_change_grid_visualizes_grid_on_to_off_0.png b/src/wasm-lib/tests/executor/outputs/cache_change_grid_visualizes_grid_on_to_off_0.png new file mode 100644 index 0000000000000000000000000000000000000000..10a5d3ae3d4b4c57039dde5360eb691e11a6036a GIT binary patch literal 116511 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 literal 0 HcmV?d00001 diff --git a/src/wasm-lib/tests/executor/outputs/cache_change_grid_visualizes_grid_on_to_off_1.png b/src/wasm-lib/tests/executor/outputs/cache_change_grid_visualizes_grid_on_to_off_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8f97850b798bec922f5db9d51d6a9e2d86f5d570 GIT binary patch literal 47712 zcmeHwdt8-e*7gIalx9qJpmKyt%qCNsoWKLRYaCO?(&;VZEtOqk6U`{1l5tWtYUYp? zierwU(CFJZqpy-Vi72>H@s#4OaTFDFBO<6IM>%ZRdq3Z`*8QCJ#+v5)zCW4Y{5T~% z_r315u63=`{iOe9@`S#WMFXzqzd!KG_ysctw)-437NOvo9z5 z+$i$xUN0y=!j$OM9-%k3W9vUs`Zlp8E1FpMO}Q8x@Vxn9)tCx+zt6ma02T_5Yrw8d-35 zMd8_5R{rR-eoRX10}(}w+AbsvvAxs!-MMK=f9TmOnz$ zg{MX@I>TRw$#Q$+0Gc-#jl6sA1}(& z{-P*XwruS34CSxeZU$N!1E&`x-j#Ou;K>co44%BcB9%XsPLD5Hnv^zcdw%u)h*Pwd z#^7uF@Z2^2BT`zw+ZJ((w-zwhj?ca4VuLXal3}Smch~Rhoa0$@?67~VRT^8KkQ)Nz zhS5@uEvM#Re}5_B=3fG?gt{w3+gr@?0{76#>qqSO+c09@l1}>IKWbiOkG9e3hk$n~ zi*K(>D0#Xx;?MrOt3RC;bYeJ3?tXcdA|Qh>nw}TSIt2;l?Ds1t0X01zW6LgF6SLYyl;wts82v5Bn-d=kC!i6h~-%Uu!x1Y*!zvCW= zW%^2G(t3|2OC-z1>RxKAXZYDJi0)#6y2r0-j`TmDQt^D)PTs-!jsTJA~< zUvw(`3PjrC)BcgYy{~)op2WsS0{*dg?{QbQ`{w56;48)HcSn4ae)nMMixPZH{EXIU z{r{&8v;kFdJqp)ys$TxCnRoqPKa*0gtxZku6F97)uHIc&;I6ffCGj1xIFC5w?%S9P*hg8)0hVJXWzH* znt(CJK7r(2Iqm5=4UXm-$N$Yb*?G)mC@HmnHF} z!ix5?3acN2uHqQV>(vj=sC?E;pOe{RQh*<1WM2!_^)(_(02$siA66fua4r3Be&#>s zk6LZ&+`emB`>tL4{7?RtGck+qlQN|dNlhWaEiVQiI<|UnK2!p$v>zt%UY7@#Ij4~t z>qh6bVtujdI@j?!1sHU|tOKm^v}EyRiGgs*Grn0Gbn_t%1Y?Ovm(ti6-5q+)fAEwghv^K&|6!&vC5FIkv1%;L2jZ4OmN5^5;>N zFW7IsKoYY!)>@9mISYxOVHd4zTyV#4f;zrgJ|9{~pU1X;I%|7UeQDB$ z(xf={DQ5^bll7x(o@Q;CX7@P2ySxrCm{q*eS+}7n@ zv_m6IghN`?@O0_)=8L(_qjH-s3P2_VZqW~~2I`cz&*KOO0UVNlqOt0oCzcU}6DksnagUg(gZgpl&<*d}K z&5BMNexNB23~aIYK?xgUd+WGta?ji+cUp5gBP;VGD^mwg$*!Vxj07wMhDKMFSzTqM z$j?6N#<-;ee#uNH!xG-${j&37KVgz3f(wNx+bPLLJsV zUh4p`*l*taudkPyYIlxZ;h$L?zq&YnG}e)O^Vhk>Sp~7vvD6ZIS4mX?H_AmfIctv086SvkcaI<(d}&^P=zBwW^pw&+0sG zy`zXk(2$(lmMl4|JPoA9FUiw9eWiy<`e27S5n+}#6gKJb-&;b#f zfKgvvnoE2@5cOu^?U{_02};V8K>R>&!gJY{2f?S#Q>8X$Gl7%5ox!u-<~(7mIb;%zG7~=8%j34MP7}?etWLkdQg!OEs2&E+BQG*NIb}W z=NuP{WuN|KS2@v24BmZY;bquJ45Eg@Q!y6OVWO=`4@E|VM@E=3ciZ9PnVU$Y$AIgE zFTnp+9Dvu7-^$t={bZRlhKUIo_t9}d2Rx12*ZFTX$nLGm_3af|mMF`iICpj2{L_{QSbxruFxh;r+Dty3Q8B3LC*)NBBWG&)sh2`AZ+8DR zuH&zpVMOxJ?Xt^m0~(R29!;;IfQ=QL=+6nTM#olb$B@+KaLekg?wBu2rpl>6$Ko*C zja!)CV*yNOd(%M#ScQ*o=C2nKZfX(Yg45Q%dRuMJQ46l$Bfm;4C{%6=^=mkcXBX7f z?i(gq9a+|6Q|0D~m4L#i#UVfqhxM6$w%CM(wS*g0^b0;CQk^4IYg4^g$Lk#67Mg1o zMAsAw8vSoQYx1`+zN^n_&|s?_oLV^;q{p-_*YRoYB?ll&l~iY8V}I+^FtkU2=Prl+Iu7cmrquPC5BU#F?eS+keS0aGPK{e+7+RMvI=lQ~RvL9Z z!uUZDM!@*r#2FD*ypGTEaq_EoKyyxp$^BvUAY>6$53_%5Z@kQ(7bDQ<{E(Q&H65l$ zgQQwpE@&qr2mi(Egy7ENEwzWDzdID&Io#AdJRdw-KoO)vD49ng2So@Ja=_>{<0rJ< z!p{C^n0zErZ=hU{MQ*dm)4tz>$fe$kB2=~3Lh}|}?1cSnP5Sz!>;sC0 zL0CAsGIF?U6Osah+zrcj0<)*MtEMy&2ifYLMeDks%}l=VaWI%|5Xeviap=oOGMeeL zKc_daxbKD&N8Bu*iF2K46KJlvf0r2nnbEQ3l7n#mFZg^y$9K8z>$%lL&@vO}WG1F+ zxD;6l1TQ!+q`;RU07@moA=jC>d8auLF$0)_&sJN{H(ox%jFF-btn(y&Ru};UU~-=1 zkF87*_{%VjJIinB96#_nWr-Zerc~RHhh-+dc(xk;*7)Sx_3el?Du)M{w8dB1sBIEURz&^?*Il=cw)%WDwmf&$5 zJi2u@m#6VKcR1+2k=mAW;;vN~L8$XUXu}F1`@~8kF2Fe3QZ|Jr54;Etb$=R>=1Phr z+S>>`+s;;Rsd+O?-a5NEm=Tmn9U0`2jNqF8z%VU_*@G3uEVSqPh4wC+Sh>ux#_YJ4 z*udU`<9i!uyJY=29e>ZMw2$j2pN1t`hDAD|Wb#vy1&_^cwtf^6eSevA)(oUFC?sEt z^X6n1lr3Im;9rJzeyK_EVkfJ1{|b(lDBI$8!H+0R)LRRuEcVhu&O8c8V`>h+_q3#H zA-Tp#k|>Ae0i9n2T!ub=S6A1x!S2{VpXCi;q`5P*VOU7q@wioed2^@PJ)-JKM9 z_Ahf`wt{}+BX#^6tSr_Pu z1VJyfG)7CkJ`9sg9wmjdEMxwRqX=o-_{B#d?m{9OIj(a#J`K;s-F&X##PNbVByux{ zrpluuEA0ouEn^*am0)|wpuF*-X&s2ge;%{tarqYg708ZsCO|E_GKg# z**pVP^Gffv9MG2<{Tbpst9%1#y}*rMREI*oZ?3|hL|Ut% zw%}xKL7=F>6d65@?r(-@p2nrmTgeZr%M892m3k#Ak=!y_F|U#}!Q3*{d`NyevpoY+ zj{XG)pYov0_O%diAM9+GBj>jyVx4?KNlCsUq$ZS=mU?kTcm1OO(-tHNJxrq~g z_Z9ddG9K>s4EfLXo%`x9FIJh34p1yk0w{7ZNoNlR9R}-RNI-SP4CdMwnJEWWI2C;Q z>o9qP#_dTr$wd+r{0MH}VfFD^BiAo1r;si?m4iT|`Lx+}no6a2z4lZE1G*4SO{sR?Z0uvmrl(+1BDP zxeVlyG7(ZDh1%r0HGy7*Pqa~iF*}t(p0m`RAn%>8DSX}2{g8DC15tw{#dUuczVKjp z)kj#J)PBS6j!o^%vt-Frm=M7;f|kKETA_@?)nEWhC~|J}*%%CPSTaV~v>Keq5k${5 z_Feco<@Ro#nKo@&fE$_9p(1_cK_i3!7iV|;Ycu5~qMe7#>-|mb`^f?ZM_jtyX?ghe z$cew~m$~x2kPy!=r?)JL^!yL))?exWuo7sc{bIVDuKjkg<-OB?IE3_J$>m@WmwlPBd=w>f%0d2fv3} zovpV2At510Z zuuDSimqz7xiq&LG(8qag=3`-$nnxioYd7Love!a;XJJyq(%=(Q z<#?}yCS_=pmw9MJqjin`eX;zerZJV42USII4?-SJT0b(rdcUr-Jv2v&I6_`CyLsc6 zCDt>P_(6{7(Nu8rH57DGd|A*s%NnNrVO3CF6m<7>>&N<9gqWP>!G?dAE`Q`9%S>IC zt94oW@8R;lQoeK9#?4hTw1vMx24zvNqJhDViP^y{!TR521+IyW{xbzIG0;Ef^<4Mk zBu7+>K2O?Knmp9K^A=(>+En^h_aeix_{&Q95mkEhy)$m0whi}Yk7W}p*lcoLlSHqG z3Ip=apQy5)8u~Aagontzb|t-tL~&+pT>^}rMGVw8Ux6;Nh;v(B%RMB&^8J$D-m%te zFCMo4%YO1SO^jIdln{NokUakH6bU9KLWn!utAW?|{(AQY1 z28`~ShqUsbdpsvU5vMvQ>?m0QG8MhcQA(XFWAC{5m0T4`OaKS%>L{c&3YbzS3y!aB`5q-is8VIN*Wa9l z)ky`H`tN&~aIa@kJ#rRvPv4u_p7$jPBhrEAsx8AsOgj<4rJrsr79!xTCf9FGZq4|9N&i5@T7v%(+cmUSkz#Q>X+$qhPEeGAKeaD z7R&GG=V{R-=pF<0KZi6VfjGAXXsR?^S0#BPm(K^Jkw&2)Mn_f1E*CqhsjR5YsbFPSGTw6#?sEbF=e64I^MlRMOi9>uaw8Y+>aQ2$P&Nwdm; zo5*|*Nb_<_z4X&GbDyP8P~#sbG=!?SL0;7KHBl9mjNc-eQ9?SSEir)7Q;qeiT6Q%= zl3(#ud8~Glia&`EE^9V2`x(^5oiWQUNM^?Xzxq)`R$9!9F8QyOQ3Z zpc-AU7lpnO?RHI0{RLY?Y}4bJUr%P z#Ge(`*^#qYE5EgbDg+dDw}3bMM>?Z+C^;ufud<206*zaNBS#)7#WnPbDjH%8A1?gIz@h*J50F}Z#VX=%7wS7n6M@A7;~Y}M^yeR ze@ha|b)C;`R3*fSN)pPyo}>w1caNat-W1*F*l$hI(dv3_ie;1(b8>yslM3~1v1jP9 z!zyaRJ45zqKE!aJa<19|jk{i&dZV=cD|6@562mGBlA0a4)KL3Ri0 zrXg!&w=r&B?Y2DM1~jJqHusRqc-uCy>8mmuzmdwt3umQK(p+mtP~u5r{RW8*wVF$N zr8s0ivA6gO3rZWwsXDLaxPL}17F{gEo2SPbw&Fo}Us5%-F*Ir2+N1|U8aYxwsIC1G z&E-djh&Wk_Yke#3a8}{DtVYFz!7quobDIDb`E!bafS;m$VDkEBG%lt-Of?HyH;Btj zFRf^|sxDJ_tt{>L(&fLaJ892RVgB|s1Z&cqg2ux-Rq52}RA?rr#R42Fk%B7Xb-#rz zIAeCIyru2SzC{E-pTs%tQ{ksA!ID4>#?ngzI^(K^`tH6y-WU(zhn2Dxrjg1FRaXlX z`jw_)l@<^;U#cc(2rhZ%9NxY&ARqxrVoPVrMf4FlHw8P6PVj9&1^WR>=^0Tg7+%!_ zwT3Ibvh`j%FXFvLEv04~1zGr6+r^Yn1M@SOA+3H(%^6D z8~04k&#$5!!tU1dv)0*aA}&8*t3WYK(-wUz^X~Qhp`2wBV#|I>bS%k>T)FP^yCSeHsSkryTM>8QRz^3Yw*qTU9=U-a6XjI zEr3BPAbFjSoSb(txz_AQwc`V`OiimYs#?q9YN&ULo0a~J;$@eKU2u6@--Ud?alwpO z>2iRkPK*TdkASJ%mZw6SpOR3tbsi{HGYPUNysC+#jy%zj<&(H9Dsfq9YSqBtW0b}G za{4f8xng;%?K_;<*7BZ8$3YHd0Ej;kletV8R4O31qvdki_KvQ6MD_^dD=l{$hK3Rt#F%DUa1Tz%L2oa5TK=fxtC^;m4^6d$N+F!%3Vjeu1%3^MVzDV#_I2Z1o>SwN4yYSfBDr%M3oujl`em}S2Q*0ymf$h!w>NO4fPP{dI&fXhg?%b~2 z2FK@}oT{`8(M%3r_nNxv_8dKx?u<#q@Cwq>UIgbe4{~NYeCg7qI#G)>?1`$3)wCyR zrOL?+3P@ERFHl(wodgYfQ`r)9Wq4M}?i;(x+U3bz>5x}ytI@hjKRC}khapgnMu*6{ zef7c4ou!Y%C5KJTALO=w5a;^agfZ9K(TLTK-o5^6Sx|JJXj{-a?NnvtR7`{FrAP@{lKU1V z7ouk?LbD8oVm8W)^#cLw8KN}==o7U7o#RR9r|rhK8L7M-s+(DPltgWm?8u!klG2Fk zJ*AccqC+@BQ|CGk3~I5P7mxU4H~ndIgQ&j#05mAhm>SNw{Bt_`#%ZEMNypYMjEqJX z;i^)!%vXI5+~>aVAn?d0YE7=)zV~C&${ZW5CiA~@OEp+zSI{*H+iq1e5p>Fix>Td- zBUL(z4=APpo{AoN%h;VNKAJsevpQ@jOqE8o$73EVwU)bfxByKZS#(sIL-Qy^izZi% z54KUqIgg|H`}<3?V`CdP?g2ESOfr4XJGZAzT03mswSNvmX2*w3Fyl=WSzV~6qed8x za%Qhxj{1fQf774o?^KHEAL>CgYgMV-3EISA#}v`F@@h`YtGUgTl$}C#-$7I9z;_=H z7=3uh%p-|!44bj12lari9X7+aVprK5KkB?xwh(;}{o#_S4^fu}z_GXwGHAy*WJd}V z2?~b|gM)pFJ_^6s{+jM_^~9Zp7E^zQgQ25hxP!Lf(@yQy7)vs=e?)|%4Q)L7K%BE~ zpk1r{&O7gvMvNFyaWSR-io>vQX}i^(Ok1O!VJ|a}eC#v#yR$#9Ya_-Ik%y)GP&fPM zlh*FWp_`-&Dr~rB{b4G4TbK3qJeD#H?U0^l#YZa+*&2#b<2Ac+mTbJIiCtz zydGEFr`pt>>(*jcH5&i4+K6;mN{1BwbBGUj_DN@->nBg8lI9%bD=q(6y3|j?Zg$&W z%5J)crr98VWdptyduq4)DMx}mjd=IF`=uiv54hZue66Hv6c*o?qE4JuG4|D-@o2iG z4{Fa3aS1eBlt9zPx%l$Alp+cpTYax~?t;fOTk;@k zbfQU#<|Wt%HwU7N+Mr-44)}iY)mMis?|Ww+uCC-`_d%n3G1lN#4%WXK0q8b+k5(8{XL7Yfm`h9R@KFQU$Exkhyb$<>my_ay9dotGA?egtjq@SVWn8G1P&)nsqcc;nN(2HwHjC z0GUga^I6%WhzcaxWpo}{Sy=$A9pZFobIMr(3#3Fw@s$P(k_f=0vq(^5TL8Co`4600 zmwR(+-To_MYJGC1L>A|nBr|8|2}FA(Z_&SE!^LYG#&%vnWgq?Vjt40T62DVPCh}3# z6Aq-Hwe+sE8#jPF00OC^q9QG&zHlx2z!sDFmzTdeYgV7Ml9Cq$82DD4pOt$BY9{@3 z^t&H+7FJE#7h=1CbxSyp`2b|ada#?G73y~GeyuJ7%7Qy7M_}=Jm36F2YR|Uor6wY5Xj~>jRt}#>kj1Q!uG?$!+pqU`VfM} z$FCM>+^a~1V={5$B01ee>~yb3gP|WAI?__M4D_DR9uXKckze72_zmXLS|@?^P6K+K zrh-Q5oke`FK+fx0sh3bgGUykE&BtHf`q#wWF$i(^*(DRMeU(zl$hB!e%Jm`=+}3QN<*D=HB?K z)c1@0{9`Z^SP7Kqjx;!zdB=z5Ne#MhnJZj7;j_`V$iqap-`%3-^gM52Fl$oaX}wA< z6i0KF0}Nobmt7?#4&2$?1)}sy+8pa`mv)Y=-PxXjth?xyxkD7fP#hi+5z(Wfpa*3$RqcH(;=T(0fyuAy3jHFXr$_1KAAS>lH&(mOug_edGPr-pTG0@SP}GR z#b)QATDOL?>?hU@575fBv-E4|-4pn-2Uka~+|lL`u0;%+uD3aUimi-Y5qMbfDPp7# z*6$u38yh=s?%blOav}1OKG<0m%6@(ozn_xwpe;5&{_eC{xrO(U!5emW=?4s6qL@ws z4^s}S()ua8{5bF#bgjIEWDH#XVAv5Ht#osd{JIu-8hpLwLp~U6CD)QehvC@9t>`=p zN{z+Mx#(eXCa3@wPqkC(q1z(QpnY)a&<`WEP%1{-{QTRCzABCGQv~HBIG!_SKKP47 zM&pX6ghb7|&@m~y@xvI2w2g3!G$`-FyZtf2z&*Q)rO^Cbtb6p08#nNeBbHJcPm~dP zx-(8q7|Kr@+O9V7%x5ab{?F7dJXy2wWE_}F;Xjx9(D-jK90$33;Tj)+=}-+3zU1J+ zaT0bTE?dYhQ|$(hUb7fwbH{$HE9otK`?`?mpTM_+V}pjB=FUc1y`RS5-_xz#bdq@& zmL5|`ORsUBA>K8noqC|r(Lv%6&M;AMFY0+frzKGC(fYC-g($RZ9e3LZ?*lYCJ$rTQJ8S zMG7S*WiNlXEY=w#2#G=*`>{XCOFle2+oy=)A#1B}6WT#6H5|kl!$BB{{S~wOcN~X^ z1y7ZbEv{>5_(>WRsIH9y$C_RF`RO5K!tmfTXD$`?>_h$>Kt+fP=|}(h2U*BO4_f#L z)51g8p0vC1aDPJ_HBOJCg2j~!`SxW!;Cw>*J;)aBP8 zcm3;r@;T_vs$!D-QKRImPdvbItF8aXh9mN0nTgMW+@=e1i=nt9VSEt_jGb~5lzxjA zw?k-=q0JB(2BW`_F*~*<`q~<)ovu1?4^n$2Y_F?c<7eokf1#iJS|)n! zO0f?Kp0K>0ihTlJm6L$N-oZ{$7&n9%vN_D*$zmz9yQ8#&lgXNU zYc{yI(squT#*$@&%3i#-lbTdFV6?x!=4VrqdP@}d-3utq2N@LeRn*rdfp23xe*)#M zE9ET&sgxFKUIG`u%!AYlC1&>6;xIIior>T#^jQ2}BG|UX!^4?s8wp4t%Ik!qh>?J! zYuI}efs&3##Q>Moa-|KLhX@MRCmU#MmrG26KAUt{=`iU7y@R?VFPnhC^QN+W0^u@1mUUB58;1B z0*2J)RpjFyPPg=BRgnj?{%m!(fVW^cY>;ZnRw`jf>CS8owTNA7WAC7u-0Xa}4<$Ymu| z(ke|WK)dY6!sL6=WQEGtZAI`g7(WP>rlg!dwL2#^x^htT5)#Bh^+v0f9K8>&!&J+* z!sQJA3ZkQlxa4al-K~WQ5pKZ6a3ma92!FENi;O&`XD5-Kp}w~v*1Z=JSb~Jsxx-<^ zmn6~QqqSb->&<}jDRG06fIk|ordY6%+83N?zoWkEEn3l?@(Tu*T7%0A3@r6nR>AGmYeo!@8z3p<=L{AGD|mF&qz$%PA_g2Z2H)y^r9 z+}?e)d*@>)-Mx*Q>oDt}TKyEvSp`HoC!hfl6Y4OjKVVN7dV2y-QjH+sm+JXMxvYXx zHWL%bSwvUp-~`vxz^@7H6m#Tvf|O0BD1?X%UCgivCW(w`Gp2muZ^1ndadw0uOsnG= zmCRDZdE^>OT#oI;hzErcba_bCGH&wa>>Pi?lG9>Scbdla2|uw<=*1Y-$U&d zTcgpY9`i+s^|UT7^`;CDo3sd<6mg>GbI=$c{W2)i?B=+6NM2J_svYT92K_ zT5>tL=b5xN1@Bi>Y(|TG(criEOX@FZ8dl#ljOO%ma2OE2?U8i(37j}A9rqs6i9>3S z0p7IkO}%r23(wTBjrmf0QP?g=1|h$y(}8*`>ULk=k4V(;mvmvys_^7Z;fU~Pgoi?| z*BH}LYn9&?>v&$%ylo+k!Ox;^uKpqQna~g_fbYI;w}r{8uzcniDmw!G&w0WL()=+EI>65hrhVY(A3;E}xQ zW_|Ux`7Qn;eajx!hXI^#6QFs^ooA`RpNViVRkuJ35bK5sML}0qG@kniSM1T5N`o!# zJlw+;g48LV$Wv*AGuFKcxT2=z>>p~7vgi6T zk(qE)1Y;XZHx|M|4$zH-7Y{cbj*VG{;j} zgi`ncRt@h<^~tR59f8iP$P?Be5_cYr$-!+&2}x@c=*mH7%#ISA5FST=j}S5sN45qR zZt^o^49yAsze{(&OO2wt&D%?xONmL zg^jBR2Q#O$Y9nWse2G*u0IVF^F^Iew^CrClus}!Zt?qky`=a3+U1qodm#}(y>eb~< z&j5|*Dy{$>b;=G=`JrPh#reGtlgmZRCd>kzajsfqTRshO=jvo2*oa-Ze6<@@OE=|+ z_C=-yu2ZHBKoctJBZgk_YuXygZ(}BXqmU`IL%IuTTXVb`q|gS6xZ43r$z@b8>#H@W zkgLBacHqJTSErDOrlCNHpsNa&`8<>^Pgbo$)gxH{P+%C`pMq(M4*@PHFb;d!E3!?w z@WZ%wQhB$EWrXoqHyHw5{t{inQ57>TUYUU#wyAcYY+M|049i$?_#i9z`zy45r>RP- zA>n`p?L>QV(cfj1y?a)$U)N|xu0HiVqorP4*1}=v-Z**` zoi&W~L5Q7j?{;Cv0409j2jY1=IW3|Ra8Jv&uC_bM_+W8kpK#RT1{}V;!Sqj#%Fmy# z91nFO_e{w)50#E1FEWAJKN~F=Fe64yp4Ey`yD_tybHAb@5wQ;ShL{%f3Ipt#jxr-z zzVPUBlw;|xh(x;4f~uuZ@d=n(go>kQ!g$j72Eql{Ggd{Dj`RF1@nP7T+mx@n7A*@s zOCL0ea*6BQT)5TgL@76)_q^E9*S-?j5{Zi!5EdO1&W_EPy^Bz8gKC5Spt+wYD>*v3 zzkZ}o86~^FORR;4{f77B+TV9ZVSB8*1&^txs+co5P}PKXU&qjFrRjqZw-q7Ea%OvE z4Tku1ceTx>sBJi&`!I{)9)V)~4NimC zML&W>Fqc?t`GvY3_f}x8x zhQm)oGlu$HdfG-j3KoDzFkck&26BI9AsIBBNH$n0qf;w|DlrU~YN^vzI#A8LBK;WJ z#En=kJ-DUoiRkuuw5Xw5QhzFcLnKSlM+)2+T&Q_9UA~Q0vxXw-TkTo_9qg6D1nN(q!tVT2(Q#G%6;0XNz=SQxI&B1e{|NIX=m0zm?Yd1hSuE4)`n z+;fK5!_1S{N{vyE9nWuG^dR)fYrER9vl22Szz#4g#9ip5<#6fSeIe%9eh z_E^cN;ZvcF@KWEEvc*u$P`L+@K+%4WC8-Y<26&&U@J6#UIB>e(Lk<$$^pg;}+n3W$ z{89zgyIIB<{JGrA+q==c4EItsf<3i)Ngs<+kAle!1*fD4iV3h+jnSvT;AauDlG1=f z!V83QfWh&YTFZ9V8l6D6$cC~L;5(uhVG2n&0v?g%P%TtIw5AegUD!y)K9E^tvE4;ZCydd za26pGpUqSmH~mdO!pUCPEMq-^3)F#Q`vO5h9Kw1EV1dJ*zTl7tL9#DZ-7A2_veMh1 z)2jFe-&86#W9ER!pg0*UN30F`j7LaUgq%oCVd=z4kQI}*R7!jWf8 z9;BB!x4Qj1jb-z(xIB?!MDesh6sh|00cmwFKZaxDMgP3yZz#a?1Z6kDE zz$xSvAT(?WxrjQBIq4!=t-P>EFPucVLiznG3pwl-4T*dqTq-x#@C99Wh+7K^l{R}R zAm!}A#Lv*Nj^ge}>h`9&50t;ePm<;+nx5``+GLwBF0c&TURAl66-`n!4SFavZF@%^ zzez#!pq+X-aeIfkN)Q|RDAH%j3!-x9&NCLXB;MJ=x8QTv4_{LeCmQKF{Z8RQ&{cE+ zpr(k@?#klAwu{G6JHrv6vQ8KHA5hIU`hN8^MA*dS6XP^1V}WgCAZu9QJ!1Znhl{-sPj_G zwDFs!XZTE(F<6Iws6rEEr;q|eP)OCj*_l)`eAz?S@oyD{GT{YSW#rO5f-#TnSpMyH zo~08ScXIv6=FhkXMXqt*Ej}bALrHxzHWtI zyVO9FI`43|4bP?V;0}FzKlQ=X)F@4qun%H#3|4&6zD@tL#<$MWr0Va zMFD1lvo2=4*-Sik1(GkOc2#%Me*g2xD<^#U)tj4wr>&uir_#Xi(% zp47m-2Vt_>EKC(_oGdrnBkPVN8%b7Zzlcn!WMe-OCcnbb7m+A;oe+~1t3F+ z?(ihs?2i9p=?kE4OU!7KDsEh?yP>|H%hl$2+d8<0$>t^5Z^XKa=*Jb@WD@J{Nu3LD z#P<;^2q3G48(hIk{Dw*gsYYqVU1Rt0>aZZOx+F{_(N!db+JHzv3}Eqna15mJ^OCai ze7qK@ziSZ^v}_?Ac!jyh8PbFbn)BVa+@IToL$0wn`&V?4YAc-%<#i+4_Xkuj<`$Tg z)+gu%fPl%Lq{Y{qBs~yuHxb2P_$3sU>IbD$1x3+Y2>7{vC@#{`BkVm}y^L@@^n7`F z53dZO;YMsEHRV@`+4myX)OJCsXhg6)UstYQdPWRmvGFO;5-yrsdQ{M?76S=vPZ9ek zn>Gy$!PTIzD(XPq8Y&xwm#@t9P}yaxfP?r)VyV$TQP(_#Ebk?1*YFJ2+w}e}NLzlJ z9i~XSd#t;H+I`sWo-7hGCPHaM4-)7IU>5LyheUS^Bz=bEl4BY*im~da0|v}{=bd6~ zC-je;Ma)Cu1i6kmxRh=st(WKpc}iW-$RaBiM}OH1z*F=NLE_3^d18emR3uBh*m5Ba zfw3d<5uGyZPWh+oV=tnM4qerqd}Hw9k3asHfa2=aKVk>;&8Sh8;v0yPVoY3;M(}_; z!13`za{Pp84AD!BU!bKI0zXG6N3Z)Ft|mp~Xai5%-eD45)|&T8_3yfPUM71{c0T&I z!l|M!6Ro6u<_iH&m@q+?w)lqhoN5lp%c80p@Fp=7UN>kJ&I4ca%Kr#2Q%@x3Asj}Z zf$*Pk7<==kS1Z&+4-H7mx%`5xi*)@Iy%fvOX462qN(1FvVRRxyj_%9s9Ee#`oE7JOvDTo-|MeXs$LSKMdgN z{E)AGAb+1YN7x`aMD~EsiYvFp^;)`Ll=}DYFO{R)HR2oSv4mSb2m^CW0puZTPHsSn z6~%fgZ!?0B>ktd26|+c3`?UC#dIFY* zrm@Qw3wHK_)FdeEZ*ezAUHM2BtHm85zl5U4L3lJcVrVOXVMht(k}*(3-3;i75I+@g zP5xs}ePd9)Pf=Ong)+1dvd}u}mvL{adNnK`{s2}-Kf38wa0vCQCLQHbiDa%R0S95HtZE0!zS!@8l$~HgpIpYr~yqnq$Mi3c3o8b%hcG;_?_b zCvdb9vL_;JksmeS7#HqGiy*)QgkuF3i}55$NRdt%*Bwc7n@hr*pMe3UWZ1t|BN z!tpN(FG3$x+@kORe%I~UT{Q0MTp$@3sGo=u;;>R!zfVy~xc!9RfB^$`OdrOe3yA{; z#CPq`2FOYJ?_1uUA;;mhSOv4*zNi!^e7tUE38y25}1h>)Y zn4meW%qBE1(tx&d$Qo~)?46bsw{M;QD51EDkg*9;V|Wf~HEri;{5!cT^h!zG~daAjhlX!%m?4ihzs-GQ$aGba2*HAt{F zTqF(;TALBvhie*WEIwGMCT&DC$H(dS(V=A&F|ITs+_M^5jk z@fW#2<=y7H=#{LMxqc!)(UTENEIDQ7Ouw{gbMkxAhh=2oz7<#|d1s=t(n+j84c6-+ z91Lt2oV(?Jx)!${FeFac4_#*W>8p%LiBHYKeJjk`N4%<1sF+}ZpnXyW#(I6|!zJQ< z(ujn*pY9ro56rotbx#bW5Ay)VB_%YM+{B8AHo;LW78 zm-lk`IGXdWbwTb{huxS zg*23$3UCc)M23e11x?=w+|r0d=#IWcWd$W=bnOP06lgGduSx?u>h+;Or2!?MPtC|< zH7vbKJoczYYxUH_LJH>-#V8%ff`M0Vmo=`EQhWz=DMi6CL&a+?ITcF1M}D4^P4jbI(-Sw8ISLU7!MFHdflD$!sM{dIKOIzK!9=R5^Q=5IPSsxKpAW8kr4(kUh)6yQI z?#^`wgg|U`&gNG4HyB)NrG`hjV14_G@hX<5)GY=0a?FNr-@R%xh2b#vX z*3}(BD_H?iM(9orcw|eua~`Y~>W6OdFm^ITb%TcyN@uimgGV=bbZ3H%oVz=jW0VHP dW0oGvw-r9L@0q8zOZZ>p_{qQ8{>#^w{2xS^z$5?w literal 0 HcmV?d00001 diff --git a/src/wasm-lib/tests/executor/outputs/cache_change_highlight_edges_changes_visual_0.png b/src/wasm-lib/tests/executor/outputs/cache_change_highlight_edges_changes_visual_0.png new file mode 100644 index 0000000000000000000000000000000000000000..8f97850b798bec922f5db9d51d6a9e2d86f5d570 GIT binary patch literal 47712 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 literal 0 HcmV?d00001 diff --git a/src/wasm-lib/tests/executor/outputs/cache_change_highlight_edges_changes_visual_1.png b/src/wasm-lib/tests/executor/outputs/cache_change_highlight_edges_changes_visual_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0deafe039edbbf4921a08372a66e8f1d88b1cf38 GIT binary patch literal 35533 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 literal 0 HcmV?d00001