Skip to content

Commit 9fffc11

Browse files
authored
feat: add net.CIDR_host function (#1920)
Signed-off-by: John Gardiner Myers <[email protected]>
1 parent ac4f8bc commit 9fffc11

14 files changed

+336
-68
lines changed

kclvm/api/src/service/service_impl.rs

+3-3
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(), 191);
227-
/// assert_eq!(result.symbol_node_map.len(), 191);
228-
/// assert_eq!(result.fully_qualified_name_map.len(), 202);
226+
/// assert_eq!(result.node_symbol_map.len(), 192);
227+
/// assert_eq!(result.symbol_node_map.len(), 192);
228+
/// assert_eq!(result.fully_qualified_name_map.len(), 203);
229229
/// assert_eq!(result.pkg_scope_map.len(), 3);
230230
/// ```
231231
#[inline]

kclvm/loader/src/snapshots/kclvm_loader__tests__builtin_call_0.snap

+7-7
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
8989
},
9090
),
9191
attrs: [
92-
SymbolRef {
93-
id: Index {
94-
index: 149,
95-
generation: 0,
96-
},
97-
kind: Function,
98-
},
9992
SymbolRef {
10093
id: Index {
10194
index: 150,
@@ -299,6 +292,13 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
299292
},
300293
kind: Function,
301294
},
295+
SymbolRef {
296+
id: Index {
297+
index: 179,
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

+21-21
Original file line numberDiff line numberDiff line change
@@ -246,13 +246,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
246246
},
247247
),
248248
attrs: [
249-
SymbolRef {
250-
id: Index {
251-
index: 149,
252-
generation: 0,
253-
},
254-
kind: Function,
255-
},
256249
SymbolRef {
257250
id: Index {
258251
index: 150,
@@ -456,6 +449,13 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
456449
},
457450
kind: Function,
458451
},
452+
SymbolRef {
453+
id: Index {
454+
index: 179,
455+
generation: 0,
456+
},
457+
kind: Function,
458+
},
459459
],
460460
is_global: false,
461461
},
@@ -495,13 +495,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
495495
},
496496
),
497497
attrs: [
498-
SymbolRef {
499-
id: Index {
500-
index: 149,
501-
generation: 0,
502-
},
503-
kind: Function,
504-
},
505498
SymbolRef {
506499
id: Index {
507500
index: 150,
@@ -705,6 +698,13 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
705698
},
706699
kind: Function,
707700
},
701+
SymbolRef {
702+
id: Index {
703+
index: 179,
704+
generation: 0,
705+
},
706+
kind: Function,
707+
},
708708
],
709709
is_global: false,
710710
},
@@ -744,13 +744,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
744744
},
745745
),
746746
attrs: [
747-
SymbolRef {
748-
id: Index {
749-
index: 149,
750-
generation: 0,
751-
},
752-
kind: Function,
753-
},
754747
SymbolRef {
755748
id: Index {
756749
index: 150,
@@ -954,6 +947,13 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
954947
},
955948
kind: Function,
956949
},
950+
SymbolRef {
951+
id: Index {
952+
index: 179,
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

+21-21
Original file line numberDiff line numberDiff line change
@@ -578,13 +578,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
578578
},
579579
),
580580
attrs: [
581-
SymbolRef {
582-
id: Index {
583-
index: 149,
584-
generation: 0,
585-
},
586-
kind: Function,
587-
},
588581
SymbolRef {
589582
id: Index {
590583
index: 150,
@@ -788,6 +781,13 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
788781
},
789782
kind: Function,
790783
},
784+
SymbolRef {
785+
id: Index {
786+
index: 179,
787+
generation: 0,
788+
},
789+
kind: Function,
790+
},
791791
],
792792
is_global: false,
793793
},
@@ -827,13 +827,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
827827
},
828828
),
829829
attrs: [
830-
SymbolRef {
831-
id: Index {
832-
index: 149,
833-
generation: 0,
834-
},
835-
kind: Function,
836-
},
837830
SymbolRef {
838831
id: Index {
839832
index: 150,
@@ -1037,6 +1030,13 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
10371030
},
10381031
kind: Function,
10391032
},
1033+
SymbolRef {
1034+
id: Index {
1035+
index: 179,
1036+
generation: 0,
1037+
},
1038+
kind: Function,
1039+
},
10401040
],
10411041
is_global: false,
10421042
},
@@ -1076,13 +1076,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
10761076
},
10771077
),
10781078
attrs: [
1079-
SymbolRef {
1080-
id: Index {
1081-
index: 149,
1082-
generation: 0,
1083-
},
1084-
kind: Function,
1085-
},
10861079
SymbolRef {
10871080
id: Index {
10881081
index: 150,
@@ -1286,6 +1279,13 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
12861279
},
12871280
kind: Function,
12881281
},
1282+
SymbolRef {
1283+
id: Index {
1284+
index: 179,
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

+15-15
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
4646
},
4747
),
4848
attrs: [
49-
SymbolRef {
50-
id: Index {
51-
index: 52,
52-
generation: 0,
53-
},
54-
kind: Function,
55-
},
5649
SymbolRef {
5750
id: Index {
5851
index: 53,
@@ -158,6 +151,13 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
158151
},
159152
kind: Function,
160153
},
154+
SymbolRef {
155+
id: Index {
156+
index: 68,
157+
generation: 0,
158+
},
159+
kind: Function,
160+
},
161161
],
162162
is_global: false,
163163
},
@@ -247,13 +247,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
247247
},
248248
),
249249
attrs: [
250-
SymbolRef {
251-
id: Index {
252-
index: 52,
253-
generation: 0,
254-
},
255-
kind: Function,
256-
},
257250
SymbolRef {
258251
id: Index {
259252
index: 53,
@@ -359,6 +352,13 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
359352
},
360353
kind: Function,
361354
},
355+
SymbolRef {
356+
id: Index {
357+
index: 68,
358+
generation: 0,
359+
},
360+
kind: Function,
361+
},
362362
],
363363
is_global: false,
364364
},
@@ -460,7 +460,7 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
460460
def: Some(
461461
SymbolRef {
462462
id: Index {
463-
index: 62,
463+
index: 63,
464464
generation: 0,
465465
},
466466
kind: Function,

kclvm/runtime/src/_kclvm.h

+2
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_host(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
427+
426428
kclvm_value_ref_t* kclvm_net_CIDR_subnet(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
427429

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

kclvm/runtime/src/_kclvm.ll

+2
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_host(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
390+
389391
declare %kclvm_value_ref_t* @kclvm_net_CIDR_subnet(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
390392

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

kclvm/runtime/src/_kclvm.rs

+1
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_host,
207208
kclvm_net_CIDR_subnet,
208209
kclvm_net_CIDR_subnets,
209210
kclvm_net_IP_string,

kclvm/runtime/src/_kclvm_addr.rs

+1
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_host" => crate::kclvm_net_CIDR_host as *const () as u64,
212213
"kclvm_net_CIDR_subnet" => crate::kclvm_net_CIDR_subnet as *const () as u64,
213214
"kclvm_net_CIDR_subnets" => crate::kclvm_net_CIDR_subnets as *const () as u64,
214215
"kclvm_net_IP_string" => crate::kclvm_net_IP_string as *const () as u64,

kclvm/runtime/src/_kclvm_api_spec.rs

+4
Original file line numberDiff line numberDiff line change
@@ -1018,6 +1018,10 @@
10181018
// api-spec(c): kclvm_value_ref_t* kclvm_net_CIDR_subnets(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
10191019
// api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_net_CIDR_subnets(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
10201020

1021+
// api-spec: kclvm_net_CIDR_host
1022+
// api-spec(c): kclvm_value_ref_t* kclvm_net_CIDR_host(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
1023+
// api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_net_CIDR_host(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
1024+
10211025
// api-spec: kclvm_regex_match
10221026
// api-spec(c): kclvm_value_ref_t* kclvm_regex_match(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
10231027
// 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)