From d71076104259a7b08adaafe31820c639be53573a Mon Sep 17 00:00:00 2001 From: peefy Date: Tue, 7 May 2024 10:27:35 +0800 Subject: [PATCH] chore: update file.size runtime impl and update test cases Signed-off-by: peefy --- kclvm/Cargo.toml | 2 +- kclvm/api/src/service/service_impl.rs | 6 +- .../kclvm_loader__tests__assign_stmt_0.snap | 2 +- .../kclvm_loader__tests__assign_stmt_1.snap | 2 +- .../kclvm_loader__tests__assign_stmt_2.snap | 2 +- .../kclvm_loader__tests__builtin_call_0.snap | 16 +++--- .../kclvm_loader__tests__builtin_call_1.snap | 50 ++++++++-------- .../kclvm_loader__tests__builtin_call_2.snap | 54 +++++++++--------- .../kclvm_loader__tests__import_stmt_0.snap | 2 +- .../kclvm_loader__tests__import_stmt_1.snap | 2 +- kclvm/runtime/src/_kclvm.bc | Bin 14308 -> 14344 bytes kclvm/tools/Cargo.toml | 3 +- kclvm/tools/src/testing/suite.rs | 14 +++-- test/grammar/builtins/file/size/stdout.golden | 1 - 14 files changed, 81 insertions(+), 75 deletions(-) delete mode 100644 test/grammar/builtins/file/size/stdout.golden diff --git a/kclvm/Cargo.toml b/kclvm/Cargo.toml index 250fc348d..2b8344112 100644 --- a/kclvm/Cargo.toml +++ b/kclvm/Cargo.toml @@ -63,4 +63,4 @@ members = [ ] [features] -llvm = ["kclvm-compiler/llvm", "kclvm-runner/llvm"] +llvm = ["kclvm-compiler/llvm", "kclvm-runner/llvm", "kclvm-tools/llvm"] diff --git a/kclvm/api/src/service/service_impl.rs b/kclvm/api/src/service/service_impl.rs index a7046e969..a4a9311f4 100644 --- a/kclvm/api/src/service/service_impl.rs +++ b/kclvm/api/src/service/service_impl.rs @@ -176,9 +176,9 @@ impl KclvmServiceImpl { /// assert_eq!(result.type_errors.len(), 0); /// assert_eq!(result.symbols.len(), 12); /// assert_eq!(result.scopes.len(), 3); - /// assert_eq!(result.node_symbol_map.len(), 175); - /// assert_eq!(result.symbol_node_map.len(), 175); - /// assert_eq!(result.fully_qualified_name_map.len(), 184); + /// assert_eq!(result.node_symbol_map.len(), 174); + /// assert_eq!(result.symbol_node_map.len(), 174); + /// assert_eq!(result.fully_qualified_name_map.len(), 183); /// assert_eq!(result.pkg_scope_map.len(), 3); /// ``` #[inline] diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_0.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_0.snap index e8347b05b..fd292807b 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_0.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_0.snap @@ -38,7 +38,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 163, + index: 162, generation: 0, }, kind: Value, diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_1.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_1.snap index d3fa1f723..6b37caeed 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_1.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_1.snap @@ -38,7 +38,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 163, + index: 162, generation: 0, }, kind: Value, diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_2.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_2.snap index 3d512da1c..132750733 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_2.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__assign_stmt_2.snap @@ -38,7 +38,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 163, + index: 162, generation: 0, }, kind: Value, diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_0.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_0.snap index 96db0f3f7..01761ec4b 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_0.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_0.snap @@ -88,6 +88,13 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, ), attrs: [ + SymbolRef { + id: Index { + index: 133, + generation: 0, + }, + kind: Value, + }, SymbolRef { id: Index { index: 134, @@ -284,13 +291,6 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, - SymbolRef { - id: Index { - index: 162, - generation: 0, - }, - kind: Value, - }, ], is_global: false, }, @@ -330,4 +330,4 @@ expression: "format!(\"{:#?}\", p.symbols.values())" attrs: [], is_global: false, }, -] \ No newline at end of file +] diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_1.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_1.snap index df6cfe8ec..609f6b562 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_1.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_1.snap @@ -38,7 +38,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 163, + index: 162, generation: 0, }, kind: Value, @@ -180,6 +180,13 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, ), attrs: [ + SymbolRef { + id: Index { + index: 133, + generation: 0, + }, + kind: Value, + }, SymbolRef { id: Index { index: 134, @@ -376,13 +383,6 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, - SymbolRef { - id: Index { - index: 162, - generation: 0, - }, - kind: Value, - }, ], is_global: false, }, @@ -415,13 +415,20 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 164, + index: 163, generation: 0, }, kind: Value, }, ), attrs: [ + SymbolRef { + id: Index { + index: 133, + generation: 0, + }, + kind: Value, + }, SymbolRef { id: Index { index: 134, @@ -618,13 +625,6 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, - SymbolRef { - id: Index { - index: 162, - generation: 0, - }, - kind: Value, - }, ], is_global: false, }, @@ -664,6 +664,13 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, ), attrs: [ + SymbolRef { + id: Index { + index: 133, + generation: 0, + }, + kind: Value, + }, SymbolRef { id: Index { index: 134, @@ -860,13 +867,6 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, - SymbolRef { - id: Index { - index: 162, - generation: 0, - }, - kind: Value, - }, ], is_global: false, }, @@ -899,7 +899,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 165, + index: 164, generation: 0, }, kind: Value, @@ -982,4 +982,4 @@ expression: "format!(\"{:#?}\", p.symbols.values())" attrs: [], is_global: false, }, -] \ No newline at end of file +] diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_2.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_2.snap index 773616084..11618498a 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_2.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_2.snap @@ -99,7 +99,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 163, + index: 162, generation: 0, }, kind: Value, @@ -240,7 +240,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 164, + index: 163, generation: 0, }, kind: Value, @@ -337,7 +337,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 163, + index: 162, generation: 0, }, kind: Value, @@ -382,6 +382,13 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, ), attrs: [ + SymbolRef { + id: Index { + index: 133, + generation: 0, + }, + kind: Value, + }, SymbolRef { id: Index { index: 134, @@ -578,13 +585,6 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, - SymbolRef { - id: Index { - index: 162, - generation: 0, - }, - kind: Value, - }, ], is_global: false, }, @@ -617,13 +617,20 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 165, + index: 164, generation: 0, }, kind: Value, }, ), attrs: [ + SymbolRef { + id: Index { + index: 133, + generation: 0, + }, + kind: Value, + }, SymbolRef { id: Index { index: 134, @@ -820,13 +827,6 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, - SymbolRef { - id: Index { - index: 162, - generation: 0, - }, - kind: Value, - }, ], is_global: false, }, @@ -866,6 +866,13 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, ), attrs: [ + SymbolRef { + id: Index { + index: 133, + generation: 0, + }, + kind: Value, + }, SymbolRef { id: Index { index: 134, @@ -1062,13 +1069,6 @@ expression: "format!(\"{:#?}\", p.symbols.values())" }, kind: Value, }, - SymbolRef { - id: Index { - index: 162, - generation: 0, - }, - kind: Value, - }, ], is_global: false, }, @@ -1101,7 +1101,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 166, + index: 165, generation: 0, }, kind: Value, @@ -1184,4 +1184,4 @@ expression: "format!(\"{:#?}\", p.symbols.values())" attrs: [], is_global: false, }, -] \ No newline at end of file +] diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_0.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_0.snap index 34d7145b8..a5d7e0a2e 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_0.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_0.snap @@ -195,7 +195,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 163, + index: 162, generation: 0, }, kind: Value, diff --git a/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_1.snap b/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_1.snap index 2a8b9e551..3a348c147 100644 --- a/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_1.snap +++ b/kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_1.snap @@ -38,7 +38,7 @@ expression: "format!(\"{:#?}\", p.symbols.values())" def: Some( SymbolRef { id: Index { - index: 163, + index: 162, generation: 0, }, kind: Value, diff --git a/kclvm/runtime/src/_kclvm.bc b/kclvm/runtime/src/_kclvm.bc index 03d4498b5c2fefe45981a633dd1f90d13ca45605..066143924cb7034e6d1607824dfe672f43f97b38 100644 GIT binary patch delta 3849 zcmZWseM}Q)7=N!VBDA(xSl)uO*9pPpaTcaI>$CXHtHfSCa7!<<2K#8L}km~>(Tc3-TiTwym{|=ejm^C z+ZYer%R)m`PCD!wZD9Cp9XH>&Jd$V~4Gdf&oseHKv zvZ}++AcvHM%-sksDO_g+aIR0~?CKeiwezNV$cxSkuIcv-bD*9_?71rvYbCpwds2;H zZA?V&Kr5+dK)jyyCN*wr`!i0@zsd8b;pUfiR0P02*Og^X354t0P(Dn+i|4aab|T%0 zk&*L}?l|SdC}7JLjSDOaGx1MSh0X+UKQUc@}R!f(oDel_0YIZpHw}nrwTg zA~fwQUT8cEip+RSx$JPRDxOWl%v*O9V`l3^pSPX>R65&Fg_wCqgGdwm8)Z|m+HWa^ z)y@*G$u38=q9%>0wJ)P||3%%lSdrP#vg)ZPo-;9z?V6ioPftJK_~biyIUP z=>@3AcO@3oW58`eCn_JspdRseq}ct2D`gKx7baVfoqYGJYOKtL$INZ4%u7!bF>A0} zA*@>9Ttq2a*f zh(L{}VE7vyCQePERVwU$mX6{sivtyQ$6VN`7raUvsa}Rf z7a2cVW0n?OkwK3|_jh$UN^(xip#A;ESS&i{c^TSYxuIfYF!3a~?*G<{Y=l48geL(S zMYeT`2-$FrX!Ku75FvY#FS(3nU7EH05t_A#Jz{!>Zq3Qb{1@GtJ;laC(HWyAtjq=% zwAP?)abVVtu4^mQdY-%IPK&AGP05f4pU;0y+9(fX`Jlq1yoX49ykw@j`qottQtUS)U334sEmX0KK>=zHd^PHpF-BxM*5;%o}jx zwsj}kv7U~mcF=nA@h61JqTXdw;Jy>-2eIxXr5U1a6$`j<{)<&v<}h$7TB~y$0g;WVVN0>cN_EF^j!n-K9{?NbiX=Gyi}UnzA*;4W z7o7@OU0cFJUjS<>)8rqGGx-G|)Y$-A7S0L#BDq#DCs=Om7>|YV(|F` zYuDhMxZc!*ez~{wq7gsbid_Q8lAE(W<_P%wr)SvUopKyu)@Na>KwfP~LJJ~GTPH$x zzeP0EPrXx!$eyr+S8;@8b(>K%!|5vgqPy0F8xdJ+LIWbZkS{{k^@YW+8ONWt*5JGE zBecrL8HgxC8r@CK|_k(Ox)x_<9!pZ&WT}?}~fe*gHusO{$rp88-bE?3+n%Yp6F=!P&}?*nKS$w{k?yd<7vT cV+c`8t1mZ(L@y4OZQoq7v2p3N8WltS2c?%#{Qv*} delta 3836 zcmZWs4NOyK6n$-h3dO>z6yv}ZLRFq9Ol4}A(kLRL;y{`pLqrt+a8ouJ#whPiEl9;# zC&l@LvIY!R=Wx!=4cT0U;V>JMz~&q-igOwa{t$5*o!R&L`+B}6H01W{z31L@?s;E# zZuon>DN0guS{oS1)%grz+%H~ImU%KJ%fk4$L(Bzc7F(o_OJ}5>SRNl?o}mbdW+a|i z+yzr#y`g z-r%gmLnCJ(xQ`UoEMyD##c(3TS=CjvxR0ATi0FEYKefp;_9KorzY!U&P5dKCuqY-A zJf4xucQG)$X|XzgIM$iFNd?(%Hs5HGI*vK|XGpsFOB?bfkgh2kf z!?9goxlzfB5R)0VZkNR?bfQ>b99OsPV#GmTjVMUkHT2%-asqUGK=9=jUBy0*-+CCO z6Md6V+uruWTwW9+Rf|8CRROrZ(Q?+oth0Y2sP1g#TS#ql*kP3C@oDpM!kgab5!vZG zj24jfc2LObEwV8PEp?8Z65T=N!hIP*T5c*NJ99wHHkAZ9<(}La>RTYX_xlxTi zL!4X*>(=&<%cF=7)uBrw1E+YNxb$K+*qx-v{bo)G9{R@s*{o1iy*uw6Ppq^M9 z?}PFQVZ6Pb+w9@e?S(?sYY8$k*%S_t|S6m z?Unv)6fYu%kX7HdV~R>AiV?DG1-;S!8c|HxuSt?Y#CQLIDNRbAOm6;#?T=oN6fN<7 z60H8;>seojdD^AC3SPwEieZ8$=iUF-A+a?SP!II3rVAcqLjPm~D>g+SG|Quz6rKMV&|CvLyyz6zG+RSQpoUU= z6qR^$t$)zkD(7^Lj_mJ(h@RzNM*lj!^=7{hY+&a1J2&IrH!aPZjv{{+OYMSo^$L%S zg#HOzTYkNC7w`Qgt1Bf`AE863KD2w1ljYDx_S{<*{Jl|8Uqm^?0N2?-6+X2lYa>1< z1}0l@9R}BAdirp*k=eD=LoEprX8Rk`k=bpFmb=%%u7AO+tv^zmnzI|9=-uZ>>QQu6 z@y8HZLSas#=vO3h8`Y~m#{1z6(~?h6?I(YehVWr6H^Ww*c|7ukbaL4^%?ti^fcrLD tq#>-3QxlcJkvqPYK2(zbh1ZfmhWWscVN|lJ6KA4E%?&uSW$dn?{{c{9S3dv% diff --git a/kclvm/tools/Cargo.toml b/kclvm/tools/Cargo.toml index 4764d3b62..ffcf51e88 100644 --- a/kclvm/tools/Cargo.toml +++ b/kclvm/tools/Cargo.toml @@ -42,4 +42,5 @@ insta = "1.8.0" name = "benchmark" harness = false - +[features] +llvm = ["kclvm-runner/llvm"] diff --git a/kclvm/tools/src/testing/suite.rs b/kclvm/tools/src/testing/suite.rs index c03058ff6..87f743b6c 100644 --- a/kclvm/tools/src/testing/suite.rs +++ b/kclvm/tools/src/testing/suite.rs @@ -5,10 +5,12 @@ use anyhow::{anyhow, Result}; use indexmap::IndexMap; use kclvm_ast::ast; use kclvm_driver::{get_kcl_files, get_pkg_list}; -use kclvm_parser::{parse_file_force_errors, ParseSession}; +use kclvm_parser::{parse_file_force_errors, ParseSessionRef}; +#[cfg(feature = "llvm")] +use kclvm_runner::build_program; +#[cfg(feature = "llvm")] use kclvm_runner::runner::ProgramRunner; -use kclvm_runner::{build_program, ExecProgramArgs}; -use std::sync::Arc; +use kclvm_runner::{exec_program, ExecProgramArgs}; use std::time::Instant; /// File suffix for test files. @@ -59,7 +61,8 @@ impl TestRun for TestSuite { ..opts.exec_args.clone() }; // Build the program. - let artifact = build_program::(Arc::new(ParseSession::default()), &args, None)?; + #[cfg(feature = "llvm")] + let artifact = build_program::(ParseSessionRef::default(), &args, None)?; // Test every case in the suite. for (name, _) in &self.cases { args.args = vec![ast::CmdArgSpec { @@ -67,7 +70,10 @@ impl TestRun for TestSuite { value: format!("{:?}", name), }]; let start = Instant::now(); + #[cfg(feature = "llvm")] let exec_result = artifact.run(&args)?; + #[cfg(not(feature = "llvm"))] + let exec_result = exec_program(ParseSessionRef::default(), &args)?; // Check if there was an error. let error = if exec_result.err_message.is_empty() { None diff --git a/test/grammar/builtins/file/size/stdout.golden b/test/grammar/builtins/file/size/stdout.golden deleted file mode 100644 index b39356075..000000000 --- a/test/grammar/builtins/file/size/stdout.golden +++ /dev/null @@ -1 +0,0 @@ -23 \ No newline at end of file