Skip to content

Commit aef68af

Browse files
authored
feat: add net.CIDR_subnet function (#1916)
* feat: add net.CIDR_subnet function Signed-off-by: John Gardiner Myers <[email protected]> * Update snapshots Signed-off-by: John Gardiner Myers <[email protected]> --------- Signed-off-by: John Gardiner Myers <[email protected]>
1 parent 074d507 commit aef68af

File tree

14 files changed

+374
-73
lines changed

14 files changed

+374
-73
lines changed

kclvm/api/src/service/service_impl.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -223,9 +223,9 @@ impl KclvmServiceImpl {
223223
/// assert_eq!(result.type_errors.len(), 0);
224224
/// assert_eq!(result.symbols.len(), 12);
225225
/// assert_eq!(result.scopes.len(), 3);
226-
/// assert_eq!(result.node_symbol_map.len(), 189);
227-
/// assert_eq!(result.symbol_node_map.len(), 189);
228-
/// assert_eq!(result.fully_qualified_name_map.len(), 200);
226+
/// assert_eq!(result.node_symbol_map.len(), 190);
227+
/// assert_eq!(result.symbol_node_map.len(), 190);
228+
/// assert_eq!(result.fully_qualified_name_map.len(), 201);
229229
/// assert_eq!(result.pkg_scope_map.len(), 3);
230230
/// ```
231231
#[inline]

kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_0.snap

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
source: loader/src/tests.rs
3+
assertion_line: 37
34
expression: "format! (\"{:#?}\", p.symbols.values())"
4-
snapshot_kind: text
55
---
66
[
77
SymbolInfo {
@@ -89,13 +89,6 @@ snapshot_kind: text
8989
},
9090
),
9191
attrs: [
92-
SymbolRef {
93-
id: Index {
94-
index: 147,
95-
generation: 0,
96-
},
97-
kind: Function,
98-
},
9992
SymbolRef {
10093
id: Index {
10194
index: 148,
@@ -299,6 +292,13 @@ snapshot_kind: text
299292
},
300293
kind: Function,
301294
},
295+
SymbolRef {
296+
id: Index {
297+
index: 177,
298+
generation: 0,
299+
},
300+
kind: Function,
301+
},
302302
],
303303
is_global: false,
304304
},

kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_1.snap

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
source: loader/src/tests.rs
3+
assertion_line: 38
34
expression: "format! (\"{:#?}\", p.symbols.values())"
4-
snapshot_kind: text
55
---
66
[
77
SymbolInfo {
@@ -246,13 +246,6 @@ snapshot_kind: text
246246
},
247247
),
248248
attrs: [
249-
SymbolRef {
250-
id: Index {
251-
index: 147,
252-
generation: 0,
253-
},
254-
kind: Function,
255-
},
256249
SymbolRef {
257250
id: Index {
258251
index: 148,
@@ -456,6 +449,13 @@ snapshot_kind: text
456449
},
457450
kind: Function,
458451
},
452+
SymbolRef {
453+
id: Index {
454+
index: 177,
455+
generation: 0,
456+
},
457+
kind: Function,
458+
},
459459
],
460460
is_global: false,
461461
},
@@ -495,13 +495,6 @@ snapshot_kind: text
495495
},
496496
),
497497
attrs: [
498-
SymbolRef {
499-
id: Index {
500-
index: 147,
501-
generation: 0,
502-
},
503-
kind: Function,
504-
},
505498
SymbolRef {
506499
id: Index {
507500
index: 148,
@@ -705,6 +698,13 @@ snapshot_kind: text
705698
},
706699
kind: Function,
707700
},
701+
SymbolRef {
702+
id: Index {
703+
index: 177,
704+
generation: 0,
705+
},
706+
kind: Function,
707+
},
708708
],
709709
is_global: false,
710710
},
@@ -744,13 +744,6 @@ snapshot_kind: text
744744
},
745745
),
746746
attrs: [
747-
SymbolRef {
748-
id: Index {
749-
index: 147,
750-
generation: 0,
751-
},
752-
kind: Function,
753-
},
754747
SymbolRef {
755748
id: Index {
756749
index: 148,
@@ -954,6 +947,13 @@ snapshot_kind: text
954947
},
955948
kind: Function,
956949
},
950+
SymbolRef {
951+
id: Index {
952+
index: 177,
953+
generation: 0,
954+
},
955+
kind: Function,
956+
},
957957
],
958958
is_global: false,
959959
},

kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_2.snap

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
source: loader/src/tests.rs
3+
assertion_line: 39
34
expression: "format! (\"{:#?}\", p.symbols.values())"
4-
snapshot_kind: text
55
---
66
[
77
SymbolInfo {
@@ -578,13 +578,6 @@ snapshot_kind: text
578578
},
579579
),
580580
attrs: [
581-
SymbolRef {
582-
id: Index {
583-
index: 147,
584-
generation: 0,
585-
},
586-
kind: Function,
587-
},
588581
SymbolRef {
589582
id: Index {
590583
index: 148,
@@ -788,6 +781,13 @@ snapshot_kind: text
788781
},
789782
kind: Function,
790783
},
784+
SymbolRef {
785+
id: Index {
786+
index: 177,
787+
generation: 0,
788+
},
789+
kind: Function,
790+
},
791791
],
792792
is_global: false,
793793
},
@@ -827,13 +827,6 @@ snapshot_kind: text
827827
},
828828
),
829829
attrs: [
830-
SymbolRef {
831-
id: Index {
832-
index: 147,
833-
generation: 0,
834-
},
835-
kind: Function,
836-
},
837830
SymbolRef {
838831
id: Index {
839832
index: 148,
@@ -1037,6 +1030,13 @@ snapshot_kind: text
10371030
},
10381031
kind: Function,
10391032
},
1033+
SymbolRef {
1034+
id: Index {
1035+
index: 177,
1036+
generation: 0,
1037+
},
1038+
kind: Function,
1039+
},
10401040
],
10411041
is_global: false,
10421042
},
@@ -1076,13 +1076,6 @@ snapshot_kind: text
10761076
},
10771077
),
10781078
attrs: [
1079-
SymbolRef {
1080-
id: Index {
1081-
index: 147,
1082-
generation: 0,
1083-
},
1084-
kind: Function,
1085-
},
10861079
SymbolRef {
10871080
id: Index {
10881081
index: 148,
@@ -1286,6 +1279,13 @@ snapshot_kind: text
12861279
},
12871280
kind: Function,
12881281
},
1282+
SymbolRef {
1283+
id: Index {
1284+
index: 177,
1285+
generation: 0,
1286+
},
1287+
kind: Function,
1288+
},
12891289
],
12901290
is_global: false,
12911291
},

kclvm/loader/src/snapshots/kclvm_loader__tests__import_stmt_0.snap

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
source: loader/src/tests.rs
3+
assertion_line: 29
34
expression: "format! (\"{:#?}\", p.symbols.values())"
4-
snapshot_kind: text
55
---
66
[
77
SymbolInfo {
@@ -46,13 +46,6 @@ snapshot_kind: text
4646
},
4747
),
4848
attrs: [
49-
SymbolRef {
50-
id: Index {
51-
index: 50,
52-
generation: 0,
53-
},
54-
kind: Function,
55-
},
5649
SymbolRef {
5750
id: Index {
5851
index: 51,
@@ -158,6 +151,13 @@ snapshot_kind: text
158151
},
159152
kind: Function,
160153
},
154+
SymbolRef {
155+
id: Index {
156+
index: 66,
157+
generation: 0,
158+
},
159+
kind: Function,
160+
},
161161
],
162162
is_global: false,
163163
},
@@ -247,13 +247,6 @@ snapshot_kind: text
247247
},
248248
),
249249
attrs: [
250-
SymbolRef {
251-
id: Index {
252-
index: 50,
253-
generation: 0,
254-
},
255-
kind: Function,
256-
},
257250
SymbolRef {
258251
id: Index {
259252
index: 51,
@@ -359,6 +352,13 @@ snapshot_kind: text
359352
},
360353
kind: Function,
361354
},
355+
SymbolRef {
356+
id: Index {
357+
index: 66,
358+
generation: 0,
359+
},
360+
kind: Function,
361+
},
362362
],
363363
is_global: false,
364364
},
@@ -460,7 +460,7 @@ snapshot_kind: text
460460
def: Some(
461461
SymbolRef {
462462
id: Index {
463-
index: 60,
463+
index: 61,
464464
generation: 0,
465465
},
466466
kind: Function,

kclvm/runtime/src/_kclvm.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,8 @@ kclvm_value_ref_t* kclvm_math_pow(kclvm_context_t* ctx, kclvm_value_ref_t* args,
423423

424424
kclvm_value_ref_t* kclvm_math_sqrt(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
425425

426+
kclvm_value_ref_t* kclvm_net_CIDR_subnet(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
427+
426428
kclvm_value_ref_t* kclvm_net_IP_string(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
427429

428430
kclvm_value_ref_t* kclvm_net_fqdn(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);

kclvm/runtime/src/_kclvm.ll

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,8 @@ declare %kclvm_value_ref_t* @kclvm_math_pow(%kclvm_context_t* %ctx, %kclvm_value
386386

387387
declare %kclvm_value_ref_t* @kclvm_math_sqrt(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
388388

389+
declare %kclvm_value_ref_t* @kclvm_net_CIDR_subnet(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
390+
389391
declare %kclvm_value_ref_t* @kclvm_net_IP_string(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
390392

391393
declare %kclvm_value_ref_t* @kclvm_net_fqdn(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);

kclvm/runtime/src/_kclvm.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ pub enum ApiFunc {
204204
kclvm_math_modf,
205205
kclvm_math_pow,
206206
kclvm_math_sqrt,
207+
kclvm_net_CIDR_subnet,
207208
kclvm_net_IP_string,
208209
kclvm_net_fqdn,
209210
kclvm_net_is_IP,

kclvm/runtime/src/_kclvm_addr.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ pub fn _kclvm_get_fn_ptr_by_name(name: &str) -> u64 {
209209
"kclvm_math_modf" => crate::kclvm_math_modf as *const () as u64,
210210
"kclvm_math_pow" => crate::kclvm_math_pow as *const () as u64,
211211
"kclvm_math_sqrt" => crate::kclvm_math_sqrt as *const () as u64,
212+
"kclvm_net_CIDR_subnet" => crate::kclvm_net_CIDR_subnet as *const () as u64,
212213
"kclvm_net_IP_string" => crate::kclvm_net_IP_string as *const () as u64,
213214
"kclvm_net_fqdn" => crate::kclvm_net_fqdn as *const () as u64,
214215
"kclvm_net_is_IP" => crate::kclvm_net_is_IP as *const () as u64,

kclvm/runtime/src/_kclvm_api_spec.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1010,6 +1010,10 @@
10101010
// api-spec(c): kclvm_value_ref_t* kclvm_net_is_unspecified_IP(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
10111011
// api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_net_is_unspecified_IP(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
10121012

1013+
// api-spec: kclvm_net_CIDR_subnet
1014+
// api-spec(c): kclvm_value_ref_t* kclvm_net_CIDR_subnet(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
1015+
// api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_net_CIDR_subnet(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
1016+
10131017
// api-spec: kclvm_regex_match
10141018
// api-spec(c): kclvm_value_ref_t* kclvm_regex_match(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
10151019
// api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_regex_match(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);

0 commit comments

Comments
 (0)