Skip to content

Commit 52a5b96

Browse files
authored
feat: add net.CIDR_netmask function (#1921)
* feat: add net.CIDR_netmask function Signed-off-by: John Gardiner Myers <[email protected]> * fix: remove broken net functions Signed-off-by: John Gardiner Myers <[email protected]> --------- Signed-off-by: John Gardiner Myers <[email protected]>
1 parent 9fffc11 commit 52a5b96

14 files changed

+186
-195
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(), 192);
227-
/// assert_eq!(result.symbol_node_map.len(), 192);
228-
/// assert_eq!(result.fully_qualified_name_map.len(), 203);
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);
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,6 +89,13 @@ 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+
},
9299
SymbolRef {
93100
id: Index {
94101
index: 150,
@@ -292,13 +299,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
292299
},
293300
kind: Function,
294301
},
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,6 +246,13 @@ 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+
},
249256
SymbolRef {
250257
id: Index {
251258
index: 150,
@@ -449,13 +456,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
449456
},
450457
kind: Function,
451458
},
452-
SymbolRef {
453-
id: Index {
454-
index: 179,
455-
generation: 0,
456-
},
457-
kind: Function,
458-
},
459459
],
460460
is_global: false,
461461
},
@@ -495,6 +495,13 @@ 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+
},
498505
SymbolRef {
499506
id: Index {
500507
index: 150,
@@ -698,13 +705,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
698705
},
699706
kind: Function,
700707
},
701-
SymbolRef {
702-
id: Index {
703-
index: 179,
704-
generation: 0,
705-
},
706-
kind: Function,
707-
},
708708
],
709709
is_global: false,
710710
},
@@ -744,6 +744,13 @@ 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+
},
747754
SymbolRef {
748755
id: Index {
749756
index: 150,
@@ -947,13 +954,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
947954
},
948955
kind: Function,
949956
},
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,6 +578,13 @@ 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+
},
581588
SymbolRef {
582589
id: Index {
583590
index: 150,
@@ -781,13 +788,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
781788
},
782789
kind: Function,
783790
},
784-
SymbolRef {
785-
id: Index {
786-
index: 179,
787-
generation: 0,
788-
},
789-
kind: Function,
790-
},
791791
],
792792
is_global: false,
793793
},
@@ -827,6 +827,13 @@ 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+
},
830837
SymbolRef {
831838
id: Index {
832839
index: 150,
@@ -1030,13 +1037,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
10301037
},
10311038
kind: Function,
10321039
},
1033-
SymbolRef {
1034-
id: Index {
1035-
index: 179,
1036-
generation: 0,
1037-
},
1038-
kind: Function,
1039-
},
10401040
],
10411041
is_global: false,
10421042
},
@@ -1076,6 +1076,13 @@ 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+
},
10791086
SymbolRef {
10801087
id: Index {
10811088
index: 150,
@@ -1279,13 +1286,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
12791286
},
12801287
kind: Function,
12811288
},
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,6 +46,13 @@ 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+
},
4956
SymbolRef {
5057
id: Index {
5158
index: 53,
@@ -151,13 +158,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
151158
},
152159
kind: Function,
153160
},
154-
SymbolRef {
155-
id: Index {
156-
index: 68,
157-
generation: 0,
158-
},
159-
kind: Function,
160-
},
161161
],
162162
is_global: false,
163163
},
@@ -247,6 +247,13 @@ 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+
},
250257
SymbolRef {
251258
id: Index {
252259
index: 53,
@@ -352,13 +359,6 @@ expression: "format! (\"{:#?}\", p.symbols.values())"
352359
},
353360
kind: Function,
354361
},
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: 63,
463+
index: 62,
464464
generation: 0,
465465
},
466466
kind: Function,

kclvm/runtime/src/_kclvm.h

+2-4
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,8 @@ kclvm_value_ref_t* kclvm_math_sqrt(kclvm_context_t* ctx, kclvm_value_ref_t* args
425425

426426
kclvm_value_ref_t* kclvm_net_CIDR_host(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
427427

428+
kclvm_value_ref_t* kclvm_net_CIDR_netmask(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
429+
428430
kclvm_value_ref_t* kclvm_net_CIDR_subnet(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
429431

430432
kclvm_value_ref_t* kclvm_net_CIDR_subnets(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
@@ -433,8 +435,6 @@ kclvm_value_ref_t* kclvm_net_IP_string(kclvm_context_t* ctx, kclvm_value_ref_t*
433435

434436
kclvm_value_ref_t* kclvm_net_fqdn(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
435437

436-
kclvm_value_ref_t* kclvm_net_hosts_in_CIDR(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
437-
438438
kclvm_value_ref_t* kclvm_net_is_IP(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
439439

440440
kclvm_value_ref_t* kclvm_net_is_IP_in_CIDR(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
@@ -463,8 +463,6 @@ kclvm_value_ref_t* kclvm_net_parse_IP(kclvm_context_t* ctx, kclvm_value_ref_t* a
463463

464464
kclvm_value_ref_t* kclvm_net_split_host_port(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
465465

466-
kclvm_value_ref_t* kclvm_net_subnets_from_CIDR(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
467-
468466
kclvm_value_ref_t* kclvm_net_to_IP16(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
469467

470468
kclvm_value_ref_t* kclvm_net_to_IP4(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);

kclvm/runtime/src/_kclvm.ll

+2-4
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,8 @@ declare %kclvm_value_ref_t* @kclvm_math_sqrt(%kclvm_context_t* %ctx, %kclvm_valu
388388

389389
declare %kclvm_value_ref_t* @kclvm_net_CIDR_host(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
390390

391+
declare %kclvm_value_ref_t* @kclvm_net_CIDR_netmask(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
392+
391393
declare %kclvm_value_ref_t* @kclvm_net_CIDR_subnet(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
392394

393395
declare %kclvm_value_ref_t* @kclvm_net_CIDR_subnets(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
@@ -396,8 +398,6 @@ declare %kclvm_value_ref_t* @kclvm_net_IP_string(%kclvm_context_t* %ctx, %kclvm_
396398

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

399-
declare %kclvm_value_ref_t* @kclvm_net_hosts_in_CIDR(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
400-
401401
declare %kclvm_value_ref_t* @kclvm_net_is_IP(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
402402

403403
declare %kclvm_value_ref_t* @kclvm_net_is_IP_in_CIDR(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
@@ -426,8 +426,6 @@ declare %kclvm_value_ref_t* @kclvm_net_parse_IP(%kclvm_context_t* %ctx, %kclvm_v
426426

427427
declare %kclvm_value_ref_t* @kclvm_net_split_host_port(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
428428

429-
declare %kclvm_value_ref_t* @kclvm_net_subnets_from_CIDR(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
430-
431429
declare %kclvm_value_ref_t* @kclvm_net_to_IP16(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
432430

433431
declare %kclvm_value_ref_t* @kclvm_net_to_IP4(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);

kclvm/runtime/src/_kclvm.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -205,11 +205,11 @@ pub enum ApiFunc {
205205
kclvm_math_pow,
206206
kclvm_math_sqrt,
207207
kclvm_net_CIDR_host,
208+
kclvm_net_CIDR_netmask,
208209
kclvm_net_CIDR_subnet,
209210
kclvm_net_CIDR_subnets,
210211
kclvm_net_IP_string,
211212
kclvm_net_fqdn,
212-
kclvm_net_hosts_in_CIDR,
213213
kclvm_net_is_IP,
214214
kclvm_net_is_IP_in_CIDR,
215215
kclvm_net_is_IPv4,
@@ -224,7 +224,6 @@ pub enum ApiFunc {
224224
kclvm_net_parse_CIDR,
225225
kclvm_net_parse_IP,
226226
kclvm_net_split_host_port,
227-
kclvm_net_subnets_from_CIDR,
228227
kclvm_net_to_IP16,
229228
kclvm_net_to_IP4,
230229
kclvm_plugin_init,

kclvm/runtime/src/_kclvm_addr.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ pub fn _kclvm_get_fn_ptr_by_name(name: &str) -> 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,
212212
"kclvm_net_CIDR_host" => crate::kclvm_net_CIDR_host as *const () as u64,
213+
"kclvm_net_CIDR_netmask" => crate::kclvm_net_CIDR_netmask as *const () as u64,
213214
"kclvm_net_CIDR_subnet" => crate::kclvm_net_CIDR_subnet as *const () as u64,
214215
"kclvm_net_CIDR_subnets" => crate::kclvm_net_CIDR_subnets as *const () as u64,
215216
"kclvm_net_IP_string" => crate::kclvm_net_IP_string as *const () as u64,
@@ -232,8 +233,6 @@ pub fn _kclvm_get_fn_ptr_by_name(name: &str) -> u64 {
232233
"kclvm_net_is_multicast_IP" => crate::kclvm_net_is_multicast_IP as *const () as u64,
233234
"kclvm_net_is_unspecified_IP" => crate::kclvm_net_is_unspecified_IP as *const () as u64,
234235
"kclvm_net_parse_CIDR" => crate::kclvm_net_parse_CIDR as *const () as u64,
235-
"kclvm_net_hosts_in_CIDR" => crate::kclvm_net_hosts_in_CIDR as *const () as u64,
236-
"kclvm_net_subnets_from_CIDR" => crate::kclvm_net_subnets_from_CIDR as *const () as u64,
237236
"kclvm_net_is_IP_in_CIDR" => crate::kclvm_net_is_IP_in_CIDR as *const () as u64,
238237
"kclvm_net_join_host_port" => crate::kclvm_net_join_host_port as *const () as u64,
239238
"kclvm_net_parse_IP" => crate::kclvm_net_parse_IP as *const () as u64,

kclvm/runtime/src/_kclvm_api_spec.rs

+4-8
Original file line numberDiff line numberDiff line change
@@ -994,14 +994,6 @@
994994
// api-spec(c): kclvm_value_ref_t* kclvm_net_parse_CIDR(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
995995
// api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_net_parse_CIDR(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
996996

997-
// api-spec: kclvm_net_hosts_in_CIDR
998-
// api-spec(c): kclvm_value_ref_t* kclvm_net_hosts_in_CIDR(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
999-
// api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_net_hosts_in_CIDR(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
1000-
1001-
// api-spec: kclvm_net_subnets_from_CIDR
1002-
// api-spec(c): kclvm_value_ref_t* kclvm_net_subnets_from_CIDR(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
1003-
// api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_net_subnets_from_CIDR(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
1004-
1005997
// api-spec: kclvm_net_is_IP_in_CIDR
1006998
// api-spec(c): kclvm_value_ref_t* kclvm_net_is_IP_in_CIDR(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
1007999
// api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_net_is_IP_in_CIDR(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
@@ -1022,6 +1014,10 @@
10221014
// 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);
10231015
// 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);
10241016

1017+
// api-spec: kclvm_net_CIDR_netmask
1018+
// api-spec(c): kclvm_value_ref_t* kclvm_net_CIDR_netmask(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
1019+
// api-spec(llvm): declare %kclvm_value_ref_t* @kclvm_net_CIDR_netmask(%kclvm_context_t* %ctx, %kclvm_value_ref_t* %args, %kclvm_value_ref_t* %kwargs);
1020+
10251021
// api-spec: kclvm_regex_match
10261022
// api-spec(c): kclvm_value_ref_t* kclvm_regex_match(kclvm_context_t* ctx, kclvm_value_ref_t* args, kclvm_value_ref_t* kwargs);
10271023
// 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)