plum

#treesitter#compiler#wasm

git clone https://git.pyrossh.dev/plum

A statically typed, imperative programming language inspired by rust, python


1daab8dPeter John 2026-07-19T19:09:16+05:30
chore: scaffold plum-checker and plum-wasm-codegen crates
Cargo.lock CHANGED
@@ -17,6 +17,18 @@ version = "2.0.1"
17
17
  source = "registry+https://github.com/rust-lang/crates.io-index"
18
18
  checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
19
19
 
20
+ [[package]]
21
+ name = "ahash"
22
+ version = "0.8.12"
23
+ source = "registry+https://github.com/rust-lang/crates.io-index"
24
+ checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
25
+ dependencies = [
26
+ "cfg-if",
27
+ "once_cell",
28
+ "version_check",
29
+ "zerocopy",
30
+ ]
31
+
20
32
  [[package]]
21
33
  name = "aho-corasick"
22
34
  version = "1.1.3"
@@ -333,6 +345,16 @@ version = "0.32.3"
333
345
  source = "registry+https://github.com/rust-lang/crates.io-index"
334
346
  checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"
335
347
 
348
+ [[package]]
349
+ name = "hashbrown"
350
+ version = "0.14.5"
351
+ source = "registry+https://github.com/rust-lang/crates.io-index"
352
+ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
353
+ dependencies = [
354
+ "ahash",
355
+ "serde",
356
+ ]
357
+
336
358
  [[package]]
337
359
  name = "hashbrown"
338
360
  version = "0.17.1"
@@ -352,7 +374,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
352
374
  checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
353
375
  dependencies = [
354
376
  "equivalent",
355
- "hashbrown",
377
+ "hashbrown 0.17.1",
378
+ "serde",
379
+ "serde_core",
356
380
  ]
357
381
 
358
382
  [[package]]
@@ -392,6 +416,12 @@ dependencies = [
392
416
  "wasm-bindgen",
393
417
  ]
394
418
 
419
+ [[package]]
420
+ name = "leb128"
421
+ version = "0.2.7"
422
+ source = "registry+https://github.com/rust-lang/crates.io-index"
423
+ checksum = "c83bff1d572d6b9aeef67ddfc8448e4a3737909cb28e81f97c791b9018703e52"
424
+
395
425
  [[package]]
396
426
  name = "libc"
397
427
  version = "0.2.186"
@@ -488,6 +518,13 @@ version = "0.2.17"
488
518
  source = "registry+https://github.com/rust-lang/crates.io-index"
489
519
  checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
490
520
 
521
+ [[package]]
522
+ name = "plum-checker"
523
+ version = "0.1.0"
524
+ dependencies = [
525
+ "plum-core",
526
+ ]
527
+
491
528
  [[package]]
492
529
  name = "plum-cli"
493
530
  version = "0.1.0"
@@ -507,6 +544,16 @@ dependencies = [
507
544
  "tree-sitter-plum",
508
545
  ]
509
546
 
547
+ [[package]]
548
+ name = "plum-wasm-codegen"
549
+ version = "0.1.0"
550
+ dependencies = [
551
+ "plum-checker",
552
+ "plum-core",
553
+ "wasm-encoder",
554
+ "wasmparser",
555
+ ]
556
+
510
557
  [[package]]
511
558
  name = "pretty_assertions"
512
559
  version = "1.4.1"
@@ -618,6 +665,12 @@ version = "1.0.23"
618
665
  source = "registry+https://github.com/rust-lang/crates.io-index"
619
666
  checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
620
667
 
668
+ [[package]]
669
+ name = "semver"
670
+ version = "1.0.28"
671
+ source = "registry+https://github.com/rust-lang/crates.io-index"
672
+ checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
673
+
621
674
  [[package]]
622
675
  name = "serde"
623
676
  version = "1.0.229"
@@ -899,6 +952,12 @@ version = "0.2.2"
899
952
  source = "registry+https://github.com/rust-lang/crates.io-index"
900
953
  checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
901
954
 
955
+ [[package]]
956
+ name = "version_check"
957
+ version = "0.9.5"
958
+ source = "registry+https://github.com/rust-lang/crates.io-index"
959
+ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
960
+
902
961
  [[package]]
903
962
  name = "wasm-bindgen"
904
963
  version = "0.2.100"
@@ -970,6 +1029,30 @@ dependencies = [
970
1029
  "unicode-ident",
971
1030
  ]
972
1031
 
1032
+ [[package]]
1033
+ name = "wasm-encoder"
1034
+ version = "0.220.1"
1035
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1036
+ checksum = "e913f9242315ca39eff82aee0e19ee7a372155717ff0eb082c741e435ce25ed1"
1037
+ dependencies = [
1038
+ "leb128",
1039
+ "wasmparser",
1040
+ ]
1041
+
1042
+ [[package]]
1043
+ name = "wasmparser"
1044
+ version = "0.220.1"
1045
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1046
+ checksum = "8d07b6a3b550fefa1a914b6d54fc175dd11c3392da11eee604e6ffc759805d25"
1047
+ dependencies = [
1048
+ "ahash",
1049
+ "bitflags",
1050
+ "hashbrown 0.14.5",
1051
+ "indexmap",
1052
+ "semver",
1053
+ "serde",
1054
+ ]
1055
+
973
1056
  [[package]]
974
1057
  name = "web-sys"
975
1058
  version = "0.3.77"
@@ -1001,6 +1084,26 @@ version = "1.0.1"
1001
1084
  source = "registry+https://github.com/rust-lang/crates.io-index"
1002
1085
  checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
1003
1086
 
1087
+ [[package]]
1088
+ name = "zerocopy"
1089
+ version = "0.8.54"
1090
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1091
+ checksum = "b7cbbc0a705a0fd05cc3676525980d2bf5a9bc4adac6d6475209a7887cf59d19"
1092
+ dependencies = [
1093
+ "zerocopy-derive",
1094
+ ]
1095
+
1096
+ [[package]]
1097
+ name = "zerocopy-derive"
1098
+ version = "0.8.54"
1099
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1100
+ checksum = "e2e817b7b52d0c7358d3246da9d69935ebb18116b2b102b4230dac079b4862f5"
1101
+ dependencies = [
1102
+ "proc-macro2",
1103
+ "quote",
1104
+ "syn 2.0.119",
1105
+ ]
1106
+
1004
1107
  [[package]]
1005
1108
  name = "zmij"
1006
1109
  version = "1.0.23"
Cargo.toml CHANGED
@@ -1,3 +1,3 @@
1
1
  [workspace]
2
- members = ["plum-core", "plum-cli"]
2
+ members = ["plum-core", "plum-cli", "plum-checker", "plum-wasm-codegen"]
3
3
  resolver = "2"
plum-checker/Cargo.toml ADDED
@@ -0,0 +1,7 @@
1
+ [package]
2
+ name = "plum-checker"
3
+ version = "0.1.0"
4
+ edition = "2021"
5
+
6
+ [dependencies]
7
+ plum-core = { path = "../plum-core" }
plum-checker/src/lib.rs ADDED
@@ -0,0 +1 @@
1
+ pub mod types;
plum-checker/src/types.rs ADDED
@@ -0,0 +1 @@
1
+ // placeholder
plum-wasm-codegen/Cargo.toml ADDED
@@ -0,0 +1,12 @@
1
+ [package]
2
+ name = "plum-wasm-codegen"
3
+ version = "0.1.0"
4
+ edition = "2021"
5
+
6
+ [dependencies]
7
+ wasm-encoder = "0.220"
8
+ plum-core = { path = "../plum-core" }
9
+ plum-checker = { path = "../plum-checker" }
10
+
11
+ [dev-dependencies]
12
+ wasmparser = "0.220"
plum-wasm-codegen/src/lib.rs ADDED
@@ -0,0 +1 @@
1
+ // placeholder