vx-toolkit 1.16.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. vx_toolkit/__init__.py +10 -0
  2. vx_toolkit/_bin/headers/collections/vec.c +8 -0
  3. vx_toolkit/_bin/headers/collections/vec.vxh +2 -0
  4. vx_toolkit/_bin/headers/cpp/greet.cpp +11 -0
  5. vx_toolkit/_bin/headers/cpp/greet.hpp +6 -0
  6. vx_toolkit/_bin/headers/cpp/greet.vxh +4 -0
  7. vx_toolkit/_bin/headers/fmath.c +3 -0
  8. vx_toolkit/_bin/headers/fmath.vxh +5 -0
  9. vx_toolkit/_bin/headers/math.c +6 -0
  10. vx_toolkit/_bin/headers/math.vxh +4 -0
  11. vx_toolkit/_bin/headers/sys.c +9 -0
  12. vx_toolkit/_bin/headers/sys.vxh +3 -0
  13. vx_toolkit/_bin/headers/text.c +17 -0
  14. vx_toolkit/_bin/headers/text.vxh +6 -0
  15. vx_toolkit/_bin/libvxrt.a +0 -0
  16. vx_toolkit/_bin/libvxtidy.dylib +0 -0
  17. vx_toolkit/_bin/std/README.md +90 -0
  18. vx_toolkit/_bin/std/bytes.vx +65 -0
  19. vx_toolkit/_bin/std/char.vx +83 -0
  20. vx_toolkit/_bin/std/collections/hashmap.vx +31 -0
  21. vx_toolkit/_bin/std/collections/linked_list.vx +166 -0
  22. vx_toolkit/_bin/std/collections/mod.vx +8 -0
  23. vx_toolkit/_bin/std/collections/set.vx +102 -0
  24. vx_toolkit/_bin/std/collections/vec.vx +40 -0
  25. vx_toolkit/_bin/std/conv.vx +57 -0
  26. vx_toolkit/_bin/std/error.vx +165 -0
  27. vx_toolkit/_bin/std/io/dir.vx +50 -0
  28. vx_toolkit/_bin/std/io/file.vx +154 -0
  29. vx_toolkit/_bin/std/io/mod.vx +5 -0
  30. vx_toolkit/_bin/std/io/path.vx +105 -0
  31. vx_toolkit/_bin/std/io/stream.vx +82 -0
  32. vx_toolkit/_bin/std/io.vx +6 -0
  33. vx_toolkit/_bin/std/iter.vx +67 -0
  34. vx_toolkit/_bin/std/macros.vx +117 -0
  35. vx_toolkit/_bin/std/math/math.vx +341 -0
  36. vx_toolkit/_bin/std/math/mod.vx +6 -0
  37. vx_toolkit/_bin/std/math/random.vx +104 -0
  38. vx_toolkit/_bin/std/mem/allocator.vx +9 -0
  39. vx_toolkit/_bin/std/mem/arena.vx +41 -0
  40. vx_toolkit/_bin/std/mem/general.vx +35 -0
  41. vx_toolkit/_bin/std/mem/mod.vx +11 -0
  42. vx_toolkit/_bin/std/mem/page.vx +23 -0
  43. vx_toolkit/_bin/std/mod.vx +5 -0
  44. vx_toolkit/_bin/std/option.vx +68 -0
  45. vx_toolkit/_bin/std/prelude.vx +13 -0
  46. vx_toolkit/_bin/std/reflect/mod.vx +129 -0
  47. vx_toolkit/_bin/std/string/codec.vx +146 -0
  48. vx_toolkit/_bin/std/string/core.vx +28 -0
  49. vx_toolkit/_bin/std/string/iter.vx +49 -0
  50. vx_toolkit/_bin/std/string/mod.vx +7 -0
  51. vx_toolkit/_bin/std/string/pattern.vx +84 -0
  52. vx_toolkit/_bin/std/string/util.vx +369 -0
  53. vx_toolkit/_bin/std/sys/coroutine.vx +46 -0
  54. vx_toolkit/_bin/std/sys/datetime.vx +160 -0
  55. vx_toolkit/_bin/std/sys/duration.vx +53 -0
  56. vx_toolkit/_bin/std/sys/env.vx +43 -0
  57. vx_toolkit/_bin/std/sys/mod.vx +10 -0
  58. vx_toolkit/_bin/std/sys/sync.vx +132 -0
  59. vx_toolkit/_bin/std/sys/time.vx +28 -0
  60. vx_toolkit/_bin/std/sys.vx +6 -0
  61. vx_toolkit/_bin/std/tests/run_all.vx +627 -0
  62. vx_toolkit/_bin/std/tests/smoke.vx +4 -0
  63. vx_toolkit/_bin/std/tests/test_collections.vx +42 -0
  64. vx_toolkit/_bin/std/tests/test_string_io.vx +202 -0
  65. vx_toolkit/_bin/vfmt +0 -0
  66. vx_toolkit/_bin/vlnk +0 -0
  67. vx_toolkit/_bin/vmake +0 -0
  68. vx_toolkit/_bin/vmake-lsp +0 -0
  69. vx_toolkit/_bin/vx +0 -0
  70. vx_toolkit/_bin/vxc +0 -0
  71. vx_toolkit/_bin/vxls +0 -0
  72. vx_toolkit/_dispatch.py +121 -0
  73. vx_toolkit-1.16.2.dist-info/METADATA +13 -0
  74. vx_toolkit-1.16.2.dist-info/RECORD +77 -0
  75. vx_toolkit-1.16.2.dist-info/WHEEL +4 -0
  76. vx_toolkit-1.16.2.dist-info/entry_points.txt +8 -0
  77. vx_toolkit-1.16.2.dist-info/licenses/LICENSE +198 -0
@@ -0,0 +1,132 @@
1
+ # ============================================================
2
+ # std::sys::sync —— 同步原语
3
+ # 第一版:Mutex、Semaphore、Channel、Once
4
+ # ============================================================
5
+
6
+ import std.error
7
+ import std.collections.vec
8
+
9
+ # ---- Mutex 类:互斥锁 ----
10
+ class Mutex:
11
+ locked: bool
12
+ value: var # 锁保护的值
13
+
14
+ func new(val: var) -> var:
15
+ var m = new Mutex()
16
+ m.locked = false
17
+ m.value = val
18
+ return m
19
+
20
+ # 获取锁(阻塞简化版:忙等待)
21
+ func lock() -> var:
22
+ while self.locked:
23
+ pass
24
+ self.locked = true
25
+ return self
26
+
27
+ # 释放锁
28
+ func unlock():
29
+ self.locked = false
30
+
31
+ # 尝试获取锁
32
+ func try_lock() -> var:
33
+ if self.locked:
34
+ return nil
35
+ self.locked = true
36
+ return self
37
+
38
+ # 获取内部值
39
+ func get() -> var:
40
+ return self.value
41
+
42
+ # 设置内部值
43
+ func set(val: var):
44
+ self.value = val
45
+
46
+ # ---- Semaphore 类:信号量 ----
47
+ class Semaphore:
48
+ permits: int
49
+
50
+ func new(count: int) -> var:
51
+ var s = new Semaphore()
52
+ s.permits = count
53
+ return s
54
+
55
+ # 获取信号量(可能阻塞)
56
+ func acquire():
57
+ # 忙等待:没有许可时等待
58
+ while self.permits <= 0:
59
+ pass
60
+ self.permits = self.permits - 1
61
+
62
+ # 非阻塞尝试
63
+ func try_acquire() -> bool:
64
+ if self.permits > 0:
65
+ self.permits = self.permits - 1
66
+ return true
67
+ return false
68
+
69
+ # 释放信号量
70
+ func release():
71
+ self.permits = self.permits + 1
72
+
73
+ # 当前可用许可数
74
+ func available() -> int:
75
+ return self.permits
76
+
77
+ # ---- Channel 类:无界通道 ----
78
+ # 基于 Mutex 保护的 Vec
79
+ class Channel:
80
+ buffer: var # Vec 实例
81
+ closed: bool
82
+ lock: var # Mutex 实例
83
+
84
+ func new() -> var:
85
+ var ch = new Channel()
86
+ ch.buffer = new Vec()
87
+ ch.closed = false
88
+ ch.lock = new Mutex(ch.buffer)
89
+ return ch
90
+
91
+ # 发送消息
92
+ func send(val: var):
93
+ if self.closed:
94
+ return
95
+ self.lock.lock()
96
+ var buf = self.lock.get()
97
+ buf.push(val)
98
+ self.lock.unlock()
99
+
100
+ # 接收消息(阻塞简化版)
101
+ func recv() -> var:
102
+ while true:
103
+ if self.closed:
104
+ var buf = self.lock.get()
105
+ if buf.size() == 0:
106
+ return nil
107
+ self.lock.lock()
108
+ var buf = self.lock.get()
109
+ if buf.size() > 0:
110
+ var val = buf.remove(0)
111
+ self.lock.unlock()
112
+ return val
113
+ self.lock.unlock()
114
+
115
+ # 非阻塞尝试接收
116
+ func try_recv() -> var:
117
+ self.lock.lock()
118
+ var buf = self.lock.get()
119
+ if buf.size() > 0:
120
+ var val = buf.remove(0)
121
+ self.lock.unlock()
122
+ return val
123
+ self.lock.unlock()
124
+ return nil
125
+
126
+ # 关闭通道
127
+ func close():
128
+ self.closed = true
129
+
130
+ # 检查是否关闭
131
+ func is_closed() -> bool:
132
+ return self.closed
@@ -0,0 +1,28 @@
1
+ # ============================================================
2
+ # std::sys::time —— 时间日期处理
3
+ # ============================================================
4
+
5
+ import std.error
6
+
7
+ # ---- Instant 类:单调时钟(不受系统时间调整影响)----
8
+ class Instant:
9
+ secs: int
10
+ nanos: int
11
+
12
+ # 创建当前时刻
13
+ func now() -> var:
14
+ var inst = new Instant()
15
+ # TODO: 需要 VM 内建 monotonic_clock 指令
16
+ inst.secs = 0
17
+ inst.nanos = 0
18
+ return inst
19
+
20
+ # 计算与另一时刻的时间差
21
+ func duration_since(earlier: var) -> var:
22
+ var dur = new Duration()
23
+ dur.secs = self.secs - earlier.secs
24
+ dur.nanos = self.nanos - earlier.nanos
25
+ if dur.nanos < 0:
26
+ dur.nanos = dur.nanos + 1000000000
27
+ dur.secs = dur.secs - 1
28
+ return dur
@@ -0,0 +1,6 @@
1
+ # VX Standard Library - System Module
2
+ #
3
+ # Provides system-level functions like process exit.
4
+ # Implementations are provided by the AOT linker built-in stubs.
5
+
6
+ extern func exit(code: int)