@shd101wyy/yo 0.1.26 → 0.1.28

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 (174) hide show
  1. package/.github/skills/yo-async-effects/SKILL.md +4 -4
  2. package/.github/skills/yo-async-effects/async-effects-recipes.md +34 -34
  3. package/.github/skills/yo-core-patterns/SKILL.md +1 -1
  4. package/.github/skills/yo-core-patterns/core-patterns-cheatsheet.md +29 -26
  5. package/.github/skills/yo-project-workflow/SKILL.md +6 -3
  6. package/.github/skills/yo-project-workflow/workflow-cheatsheet.md +36 -11
  7. package/.github/skills/yo-syntax/SKILL.md +7 -6
  8. package/.github/skills/yo-syntax/syntax-cheatsheet.md +225 -64
  9. package/.github/skills/yo-wasm-integration/wasm-integration-cheatsheet.md +3 -3
  10. package/README.md +10 -8
  11. package/out/cjs/index.cjs +553 -535
  12. package/out/cjs/yo-cli.cjs +685 -651
  13. package/out/cjs/yo-lsp.cjs +596 -569
  14. package/out/esm/index.mjs +396 -378
  15. package/out/types/src/env.d.ts +1 -0
  16. package/out/types/src/evaluator/calls/helper.d.ts +4 -2
  17. package/out/types/src/evaluator/types/synthesizer.d.ts +1 -0
  18. package/out/types/src/formatter.d.ts +11 -0
  19. package/out/types/src/lsp/formatting.d.ts +2 -0
  20. package/out/types/src/test-runner.d.ts +2 -0
  21. package/out/types/src/tests/formatter.test.d.ts +1 -0
  22. package/out/types/tsconfig.tsbuildinfo +1 -1
  23. package/package.json +1 -1
  24. package/scripts/probe-parser-parity.ts +61 -0
  25. package/scripts/probe-yo-self-parser.sh +33 -0
  26. package/scripts/validate-yo-self-fmt.ts +184 -0
  27. package/std/alg/hash.yo +13 -21
  28. package/std/allocator.yo +25 -40
  29. package/std/async.yo +3 -7
  30. package/std/build.yo +105 -151
  31. package/std/cli/arg_parser.yo +184 -169
  32. package/std/collections/array_list.yo +350 -314
  33. package/std/collections/btree_map.yo +142 -131
  34. package/std/collections/deque.yo +132 -128
  35. package/std/collections/hash_map.yo +542 -566
  36. package/std/collections/hash_set.yo +623 -687
  37. package/std/collections/linked_list.yo +275 -293
  38. package/std/collections/ordered_map.yo +113 -85
  39. package/std/collections/priority_queue.yo +73 -73
  40. package/std/crypto/md5.yo +191 -95
  41. package/std/crypto/random.yo +56 -64
  42. package/std/crypto/sha256.yo +151 -107
  43. package/std/encoding/base64.yo +87 -81
  44. package/std/encoding/hex.yo +43 -50
  45. package/std/encoding/html.yo +56 -81
  46. package/std/encoding/html_char_utils.yo +7 -13
  47. package/std/encoding/html_entities.yo +2248 -2253
  48. package/std/encoding/json.yo +316 -224
  49. package/std/encoding/punycode.yo +86 -116
  50. package/std/encoding/toml.yo +67 -66
  51. package/std/encoding/utf16.yo +37 -44
  52. package/std/env.yo +62 -91
  53. package/std/error.yo +7 -15
  54. package/std/fmt/display.yo +5 -9
  55. package/std/fmt/index.yo +8 -14
  56. package/std/fmt/to_string.yo +330 -315
  57. package/std/fmt/writer.yo +58 -87
  58. package/std/fs/dir.yo +83 -102
  59. package/std/fs/file.yo +147 -180
  60. package/std/fs/metadata.yo +45 -78
  61. package/std/fs/temp.yo +55 -65
  62. package/std/fs/types.yo +27 -40
  63. package/std/fs/walker.yo +53 -68
  64. package/std/gc.yo +5 -8
  65. package/std/glob.yo +30 -43
  66. package/std/http/client.yo +107 -120
  67. package/std/http/http.yo +106 -96
  68. package/std/http/index.yo +4 -6
  69. package/std/imm/list.yo +88 -93
  70. package/std/imm/map.yo +528 -464
  71. package/std/imm/set.yo +52 -57
  72. package/std/imm/sorted_map.yo +340 -286
  73. package/std/imm/sorted_set.yo +57 -63
  74. package/std/imm/string.yo +404 -345
  75. package/std/imm/vec.yo +173 -181
  76. package/std/io/reader.yo +3 -6
  77. package/std/io/writer.yo +4 -8
  78. package/std/libc/assert.yo +5 -9
  79. package/std/libc/ctype.yo +32 -22
  80. package/std/libc/dirent.yo +26 -25
  81. package/std/libc/errno.yo +164 -90
  82. package/std/libc/fcntl.yo +52 -45
  83. package/std/libc/float.yo +66 -44
  84. package/std/libc/limits.yo +42 -33
  85. package/std/libc/math.yo +53 -82
  86. package/std/libc/signal.yo +72 -47
  87. package/std/libc/stdatomic.yo +217 -188
  88. package/std/libc/stdint.yo +5 -29
  89. package/std/libc/stdio.yo +5 -29
  90. package/std/libc/stdlib.yo +32 -39
  91. package/std/libc/string.yo +5 -23
  92. package/std/libc/sys/stat.yo +58 -56
  93. package/std/libc/time.yo +5 -19
  94. package/std/libc/unistd.yo +5 -20
  95. package/std/libc/wctype.yo +6 -9
  96. package/std/libc/windows.yo +26 -30
  97. package/std/log.yo +41 -55
  98. package/std/net/addr.yo +102 -97
  99. package/std/net/dns.yo +27 -28
  100. package/std/net/errors.yo +50 -49
  101. package/std/net/tcp.yo +113 -124
  102. package/std/net/udp.yo +55 -66
  103. package/std/os/env.yo +35 -33
  104. package/std/os/signal.yo +15 -25
  105. package/std/path.yo +276 -311
  106. package/std/prelude.yo +6304 -4315
  107. package/std/process/command.yo +87 -103
  108. package/std/process/index.yo +12 -31
  109. package/std/regex/compiler.yo +196 -95
  110. package/std/regex/flags.yo +58 -39
  111. package/std/regex/index.yo +157 -173
  112. package/std/regex/match.yo +20 -31
  113. package/std/regex/node.yo +134 -152
  114. package/std/regex/parser.yo +283 -259
  115. package/std/regex/unicode.yo +172 -202
  116. package/std/regex/vm.yo +155 -171
  117. package/std/string/index.yo +5 -7
  118. package/std/string/rune.yo +45 -55
  119. package/std/string/string.yo +937 -964
  120. package/std/string/string_builder.yo +94 -104
  121. package/std/string/unicode.yo +46 -64
  122. package/std/sync/channel.yo +72 -73
  123. package/std/sync/cond.yo +31 -36
  124. package/std/sync/mutex.yo +30 -32
  125. package/std/sync/once.yo +13 -16
  126. package/std/sync/rwlock.yo +26 -31
  127. package/std/sync/waitgroup.yo +20 -25
  128. package/std/sys/advise.yo +16 -24
  129. package/std/sys/bufio/buf_reader.yo +77 -93
  130. package/std/sys/bufio/buf_writer.yo +52 -65
  131. package/std/sys/clock.yo +4 -9
  132. package/std/sys/constants.yo +77 -61
  133. package/std/sys/copy.yo +4 -10
  134. package/std/sys/dir.yo +26 -43
  135. package/std/sys/dns.yo +41 -61
  136. package/std/sys/errors.yo +95 -103
  137. package/std/sys/events.yo +45 -57
  138. package/std/sys/externs.yo +319 -267
  139. package/std/sys/fallocate.yo +7 -11
  140. package/std/sys/fcntl.yo +14 -22
  141. package/std/sys/file.yo +26 -40
  142. package/std/sys/future.yo +5 -8
  143. package/std/sys/iov.yo +12 -25
  144. package/std/sys/lock.yo +12 -13
  145. package/std/sys/mmap.yo +38 -43
  146. package/std/sys/path.yo +3 -8
  147. package/std/sys/perm.yo +7 -21
  148. package/std/sys/pipe.yo +5 -12
  149. package/std/sys/process.yo +23 -29
  150. package/std/sys/seek.yo +10 -12
  151. package/std/sys/signal.yo +7 -13
  152. package/std/sys/signals.yo +52 -35
  153. package/std/sys/socket.yo +63 -58
  154. package/std/sys/socketpair.yo +3 -6
  155. package/std/sys/sockinfo.yo +11 -20
  156. package/std/sys/statfs.yo +11 -34
  157. package/std/sys/statx.yo +25 -52
  158. package/std/sys/sysinfo.yo +15 -20
  159. package/std/sys/tcp.yo +62 -92
  160. package/std/sys/temp.yo +5 -9
  161. package/std/sys/time.yo +5 -15
  162. package/std/sys/timer.yo +6 -11
  163. package/std/sys/tty.yo +10 -18
  164. package/std/sys/udp.yo +22 -39
  165. package/std/sys/umask.yo +3 -6
  166. package/std/sys/unix.yo +33 -52
  167. package/std/testing/bench.yo +49 -52
  168. package/std/thread.yo +10 -15
  169. package/std/time/datetime.yo +105 -89
  170. package/std/time/duration.yo +43 -56
  171. package/std/time/instant.yo +13 -18
  172. package/std/time/sleep.yo +5 -9
  173. package/std/url/index.yo +184 -209
  174. package/std/worker.yo +6 -10
package/std/sys/signal.yo CHANGED
@@ -1,32 +1,26 @@
1
1
  //! Signal handling functions.
2
2
  //!
3
3
  //! Provides low-level wrappers for signal registration and delivery.
4
-
5
- { __yo_signal_start, __yo_signal_stop, __yo_kill } :: import "./externs.yo";
6
-
7
- SignalHandler :: (fn(data: *(u8)) -> unit);
8
-
4
+ { __yo_signal_start, __yo_signal_stop, __yo_kill } :: import("./externs.yo");
5
+ SignalHandler :: (fn(data : *(u8)) -> unit);
9
6
  // Register a signal handler.
10
7
  // Returns 0 on success, -errno on failure.
11
- on_signal :: (fn(signum: i32, handler: SignalHandler) -> i32)(
8
+ on_signal :: (fn(signum : i32, handler : SignalHandler) -> i32)(
12
9
  __yo_signal_start(signum, unsafe.cast(handler, *(u8)))
13
10
  );
14
-
15
11
  // Remove a signal handler (reset to default).
16
12
  // Returns 0 on success, -errno on failure.
17
- off_signal :: (fn(signum: i32) -> i32)(
13
+ off_signal :: (fn(signum : i32) -> i32)(
18
14
  __yo_signal_stop(signum)
19
15
  );
20
-
21
16
  // Send a signal to a process.
22
17
  // Returns 0 on success, -errno on failure.
23
- kill :: (fn(pid: i32, signum: i32) -> i32)(
18
+ kill :: (fn(pid : i32, signum : i32) -> i32)(
24
19
  __yo_kill(pid, signum)
25
20
  );
26
-
27
- export
21
+ export(
28
22
  SignalHandler,
29
23
  on_signal,
30
24
  off_signal,
31
25
  kill
32
- ;
26
+ );
@@ -2,29 +2,25 @@
2
2
  //!
3
3
  //! Platform-aware signal numbers.
4
4
  //! Uses `process.platform` for values that differ between Linux and macOS.
5
-
6
- { platform, Platform } :: import "../process";
7
-
5
+ { platform, Platform } :: import("../process");
8
6
  // ============================================================================
9
7
  // Signal Constants (POSIX signals)
10
8
  // ============================================================================
11
-
12
- SIGHUP :: i32(1);
13
- SIGINT :: i32(2);
14
- SIGQUIT :: i32(3);
15
- SIGILL :: i32(4);
16
- SIGTRAP :: i32(5);
17
- SIGABRT :: i32(6);
18
- SIGBUS :: i32(7);
19
- SIGFPE :: i32(8);
20
- SIGKILL :: i32(9);
21
- SIGUSR1 :: i32(10);
22
- SIGSEGV :: i32(11);
23
- SIGUSR2 :: i32(12);
24
- SIGPIPE :: i32(13);
25
- SIGALRM :: i32(14);
26
- SIGTERM :: i32(15);
27
-
9
+ SIGHUP :: i32(1);
10
+ SIGINT :: i32(2);
11
+ SIGQUIT :: i32(3);
12
+ SIGILL :: i32(4);
13
+ SIGTRAP :: i32(5);
14
+ SIGABRT :: i32(6);
15
+ SIGBUS :: i32(7);
16
+ SIGFPE :: i32(8);
17
+ SIGKILL :: i32(9);
18
+ SIGUSR1 :: i32(10);
19
+ SIGSEGV :: i32(11);
20
+ SIGUSR2 :: i32(12);
21
+ SIGPIPE :: i32(13);
22
+ SIGALRM :: i32(14);
23
+ SIGTERM :: i32(15);
28
24
  // Platform-dependent signal numbers
29
25
  SIGCHLD :: cond(
30
26
  (platform == Platform.Macos) => i32(20),
@@ -42,19 +38,40 @@ SIGTSTP :: cond(
42
38
  (platform == Platform.Macos) => i32(18),
43
39
  true => i32(20)
44
40
  );
45
-
46
- SIGTTIN :: i32(21);
47
- SIGTTOU :: i32(22);
48
- SIGURG :: i32(23);
49
- SIGXCPU :: i32(24);
50
- SIGXFSZ :: i32(25);
41
+ SIGTTIN :: i32(21);
42
+ SIGTTOU :: i32(22);
43
+ SIGURG :: i32(23);
44
+ SIGXCPU :: i32(24);
45
+ SIGXFSZ :: i32(25);
51
46
  SIGVTALRM :: i32(26);
52
- SIGPROF :: i32(27);
53
- SIGWINCH :: i32(28);
54
-
55
- export
56
- SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGTRAP, SIGABRT, SIGBUS, SIGFPE,
57
- SIGKILL, SIGUSR1, SIGSEGV, SIGUSR2, SIGPIPE, SIGALRM, SIGTERM,
58
- SIGCHLD, SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU, SIGURG,
59
- SIGXCPU, SIGXFSZ, SIGVTALRM, SIGPROF, SIGWINCH
60
- ;
47
+ SIGPROF :: i32(27);
48
+ SIGWINCH :: i32(28);
49
+ export(
50
+ SIGHUP,
51
+ SIGINT,
52
+ SIGQUIT,
53
+ SIGILL,
54
+ SIGTRAP,
55
+ SIGABRT,
56
+ SIGBUS,
57
+ SIGFPE,
58
+ SIGKILL,
59
+ SIGUSR1,
60
+ SIGSEGV,
61
+ SIGUSR2,
62
+ SIGPIPE,
63
+ SIGALRM,
64
+ SIGTERM,
65
+ SIGCHLD,
66
+ SIGCONT,
67
+ SIGSTOP,
68
+ SIGTSTP,
69
+ SIGTTIN,
70
+ SIGTTOU,
71
+ SIGURG,
72
+ SIGXCPU,
73
+ SIGXFSZ,
74
+ SIGVTALRM,
75
+ SIGPROF,
76
+ SIGWINCH
77
+ );
package/std/sys/socket.yo CHANGED
@@ -2,55 +2,41 @@
2
2
  //!
3
3
  //! Platform-aware socket constants for TCP, UDP, and Unix domain sockets.
4
4
  //! Uses `process.platform` for values that differ between Linux and macOS.
5
-
6
- { platform, Platform } :: import "../process";
7
- {
8
- __yo_sockaddr_storage_size,
9
- __yo_sockaddr_in_size,
10
- __yo_sockaddr_in6_size,
11
- __yo_sockaddr_un_size
12
- } :: import "./externs.yo";
13
-
5
+ { platform, Platform } :: import("../process");
6
+ { __yo_sockaddr_storage_size, __yo_sockaddr_in_size, __yo_sockaddr_in6_size, __yo_sockaddr_un_size } :: import("./externs.yo");
14
7
  // ============================================================================
15
8
  // Address Families (AF_*)
16
9
  // ============================================================================
17
-
18
10
  AF_UNSPEC :: i32(0);
19
- AF_UNIX :: i32(1);
20
- AF_LOCAL :: i32(1);
21
- AF_INET :: i32(2);
22
- AF_INET6 :: cond(
11
+ AF_UNIX :: i32(1);
12
+ AF_LOCAL :: i32(1);
13
+ AF_INET :: i32(2);
14
+ AF_INET6 :: cond(
23
15
  (platform == Platform.Macos) => i32(30),
24
16
  (platform == Platform.Windows) => i32(23),
25
17
  true => i32(10)
26
18
  );
27
-
28
19
  // ============================================================================
29
20
  // Socket Types (SOCK_*)
30
21
  // ============================================================================
31
-
32
- SOCK_STREAM :: i32(1);
33
- SOCK_DGRAM :: i32(2);
34
- SOCK_RAW :: i32(3);
22
+ SOCK_STREAM :: i32(1);
23
+ SOCK_DGRAM :: i32(2);
24
+ SOCK_RAW :: i32(3);
35
25
  SOCK_SEQPACKET :: i32(5);
36
-
37
26
  // ============================================================================
38
27
  // Socket Option Levels
39
28
  // ============================================================================
40
-
41
29
  SOL_SOCKET :: cond(
42
30
  ((platform == Platform.Macos) || (platform == Platform.Windows)) => i32(0xFFFF),
43
31
  true => i32(1)
44
32
  );
45
- IPPROTO_TCP :: i32(6);
46
- IPPROTO_UDP :: i32(17);
47
- IPPROTO_IP :: i32(0);
33
+ IPPROTO_TCP :: i32(6);
34
+ IPPROTO_UDP :: i32(17);
35
+ IPPROTO_IP :: i32(0);
48
36
  IPPROTO_IPV6 :: i32(41);
49
-
50
37
  // ============================================================================
51
38
  // Socket Options (SO_*)
52
39
  // ============================================================================
53
-
54
40
  SO_REUSEADDR :: cond(
55
41
  ((platform == Platform.Macos) || (platform == Platform.Windows)) => i32(0x0004),
56
42
  true => i32(2)
@@ -96,13 +82,11 @@ SO_REUSEPORT :: cond(
96
82
  (platform == Platform.Windows) => i32(0),
97
83
  true => i32(15)
98
84
  );
99
-
100
85
  // ============================================================================
101
86
  // TCP Options (TCP_*)
102
87
  // ============================================================================
103
-
104
- TCP_NODELAY :: i32(1);
105
- TCP_KEEPIDLE :: cond(
88
+ TCP_NODELAY :: i32(1);
89
+ TCP_KEEPIDLE :: cond(
106
90
  (platform == Platform.Macos) => i32(0x10),
107
91
  (platform == Platform.Windows) => i32(3),
108
92
  true => i32(4)
@@ -117,47 +101,36 @@ TCP_KEEPCNT :: cond(
117
101
  (platform == Platform.Windows) => i32(16),
118
102
  true => i32(6)
119
103
  );
120
-
121
104
  // ============================================================================
122
105
  // shutdown() how parameter
123
106
  // ============================================================================
124
-
125
- SHUT_RD :: i32(0);
126
- SHUT_WR :: i32(1);
107
+ SHUT_RD :: i32(0);
108
+ SHUT_WR :: i32(1);
127
109
  SHUT_RDWR :: i32(2);
128
-
129
110
  // ============================================================================
130
111
  // Special IP Addresses
131
112
  // ============================================================================
132
-
133
- INADDR_ANY :: u32(0x00000000);
134
- INADDR_LOOPBACK :: u32(0x7F000001);
113
+ INADDR_ANY :: u32(0x00000000);
114
+ INADDR_LOOPBACK :: u32(0x7F000001);
135
115
  INADDR_BROADCAST :: u32(0xFFFFFFFF);
136
-
137
116
  // ============================================================================
138
117
  // Sockaddr helpers
139
118
  // ============================================================================
140
-
141
119
  sockaddr_storage_size :: (fn() -> usize)(
142
120
  __yo_sockaddr_storage_size()
143
121
  );
144
-
145
122
  sockaddr_in_size :: (fn() -> usize)(
146
123
  __yo_sockaddr_in_size()
147
124
  );
148
-
149
125
  sockaddr_in6_size :: (fn() -> usize)(
150
126
  __yo_sockaddr_in6_size()
151
127
  );
152
-
153
128
  sockaddr_un_size :: (fn() -> usize)(
154
129
  __yo_sockaddr_un_size()
155
130
  );
156
-
157
131
  // ============================================================================
158
132
  // getnameinfo() flags (NI_*)
159
133
  // ============================================================================
160
-
161
134
  NI_NUMERICHOST :: cond(
162
135
  ((platform == Platform.Macos) || (platform == Platform.Windows)) => i32(2),
163
136
  true => i32(1)
@@ -175,17 +148,49 @@ NI_NAMEREQD :: cond(
175
148
  true => i32(8)
176
149
  );
177
150
  NI_DGRAM :: i32(16);
178
-
179
- export
180
- AF_UNSPEC, AF_UNIX, AF_LOCAL, AF_INET, AF_INET6,
181
- SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, SOCK_SEQPACKET,
182
- SOL_SOCKET, IPPROTO_TCP, IPPROTO_UDP, IPPROTO_IP, IPPROTO_IPV6,
183
- SO_REUSEADDR, SO_REUSEPORT, SO_KEEPALIVE, SO_BROADCAST,
184
- SO_RCVBUF, SO_SNDBUF, SO_RCVTIMEO, SO_SNDTIMEO, SO_ERROR, SO_TYPE,
151
+ export(
152
+ AF_UNSPEC,
153
+ AF_UNIX,
154
+ AF_LOCAL,
155
+ AF_INET,
156
+ AF_INET6,
157
+ SOCK_STREAM,
158
+ SOCK_DGRAM,
159
+ SOCK_RAW,
160
+ SOCK_SEQPACKET,
161
+ SOL_SOCKET,
162
+ IPPROTO_TCP,
163
+ IPPROTO_UDP,
164
+ IPPROTO_IP,
165
+ IPPROTO_IPV6,
166
+ SO_REUSEADDR,
167
+ SO_REUSEPORT,
168
+ SO_KEEPALIVE,
169
+ SO_BROADCAST,
170
+ SO_RCVBUF,
171
+ SO_SNDBUF,
172
+ SO_RCVTIMEO,
173
+ SO_SNDTIMEO,
174
+ SO_ERROR,
175
+ SO_TYPE,
185
176
  SO_LINGER,
186
- TCP_NODELAY, TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_KEEPCNT,
187
- SHUT_RD, SHUT_WR, SHUT_RDWR,
188
- INADDR_ANY, INADDR_LOOPBACK, INADDR_BROADCAST,
189
- sockaddr_storage_size, sockaddr_in_size, sockaddr_in6_size, sockaddr_un_size,
190
- NI_NUMERICHOST, NI_NUMERICSERV, NI_NOFQDN, NI_NAMEREQD, NI_DGRAM
191
- ;
177
+ TCP_NODELAY,
178
+ TCP_KEEPIDLE,
179
+ TCP_KEEPINTVL,
180
+ TCP_KEEPCNT,
181
+ SHUT_RD,
182
+ SHUT_WR,
183
+ SHUT_RDWR,
184
+ INADDR_ANY,
185
+ INADDR_LOOPBACK,
186
+ INADDR_BROADCAST,
187
+ sockaddr_storage_size,
188
+ sockaddr_in_size,
189
+ sockaddr_in6_size,
190
+ sockaddr_un_size,
191
+ NI_NUMERICHOST,
192
+ NI_NUMERICSERV,
193
+ NI_NOFQDN,
194
+ NI_NAMEREQD,
195
+ NI_DGRAM
196
+ );
@@ -2,13 +2,10 @@
2
2
  //!
3
3
  //! Synchronous wrapper for `socketpair`-like behavior.
4
4
  //! Returns 0 on success, negative error on failure.
5
-
6
- { __yo_sync_socketpair } :: import "./externs.yo";
7
-
5
+ { __yo_sync_socketpair } :: import("./externs.yo");
8
6
  // Create a pair of connected sockets.
9
7
  // Writes two socket fds into `sv` (sv[0], sv[1]).
10
- socketpair :: (fn(domain: i32, sock_type: i32, protocol: i32, sv: *(i32)) -> i32)(
8
+ socketpair :: (fn(domain : i32, sock_type : i32, protocol : i32, sv : *(i32)) -> i32)(
11
9
  __yo_sync_socketpair(domain, sock_type, protocol, sv)
12
10
  );
13
-
14
- export socketpair;
11
+ export(socketpair);
@@ -2,38 +2,29 @@
2
2
  //!
3
3
  //! Synchronous wrappers for socket metadata operations.
4
4
  //! Returns 0 on success, -errno (or negative platform socket error) on failure.
5
-
6
- {
7
- __yo_sync_getsockname,
8
- __yo_sync_getpeername,
9
- __yo_sync_getsockopt,
10
- __yo_sync_setsockopt
11
- } :: import "./externs.yo";
12
-
5
+ { __yo_sync_getsockname, __yo_sync_getpeername, __yo_sync_getsockopt, __yo_sync_setsockopt } :: import("./externs.yo");
13
6
  // Get local address of a socket.
14
7
  // Writes the address into `addr` buffer and updates `addrlen` with actual size.
15
- getsockname :: (fn(sockfd: i32, addr: *(u8), addrlen: *(u32)) -> i32)(
8
+ getsockname :: (fn(sockfd : i32, addr : *(u8), addrlen : *(u32)) -> i32)(
16
9
  __yo_sync_getsockname(sockfd, addr, addrlen)
17
10
  );
18
-
19
11
  // Get remote peer address of a connected socket.
20
12
  // Writes the address into `addr` buffer and updates `addrlen` with actual size.
21
- getpeername :: (fn(sockfd: i32, addr: *(u8), addrlen: *(u32)) -> i32)(
13
+ getpeername :: (fn(sockfd : i32, addr : *(u8), addrlen : *(u32)) -> i32)(
22
14
  __yo_sync_getpeername(sockfd, addr, addrlen)
23
15
  );
24
-
25
16
  // Get socket option value.
26
17
  // `optlen` should be initialized with input buffer size and is updated on return.
27
- getsockopt :: (fn(sockfd: i32, level: i32, optname: i32, optval: *(u8), optlen: *(u32)) -> i32)(
18
+ getsockopt :: (fn(sockfd : i32, level : i32, optname : i32, optval : *(u8), optlen : *(u32)) -> i32)(
28
19
  __yo_sync_getsockopt(sockfd, level, optname, optval, optlen)
29
20
  );
30
-
31
21
  // Set socket option value.
32
- setsockopt :: (fn(sockfd: i32, level: i32, optname: i32, optval: *(u8), optlen: u32) -> i32)(
22
+ setsockopt :: (fn(sockfd : i32, level : i32, optname : i32, optval : *(u8), optlen : u32) -> i32)(
33
23
  __yo_sync_setsockopt(sockfd, level, optname, optval, optlen)
34
24
  );
35
-
36
- export
37
- getsockname, getpeername,
38
- getsockopt, setsockopt
39
- ;
25
+ export(
26
+ getsockname,
27
+ getpeername,
28
+ getsockopt,
29
+ setsockopt
30
+ );
package/std/sys/statfs.yo CHANGED
@@ -16,75 +16,52 @@
16
16
  // assert(ret == i32(0));
17
17
  // block_size := statfs.statfs_bsize(buf);
18
18
  // free(.Some(*(void)(buf)));
19
-
20
- {
21
- __yo_sync_statfs,
22
- __yo_statfs_buf_size,
23
- __yo_statfs_type,
24
- __yo_statfs_bsize,
25
- __yo_statfs_blocks,
26
- __yo_statfs_bfree,
27
- __yo_statfs_bavail,
28
- __yo_statfs_files,
29
- __yo_statfs_ffree
30
- } :: import "./externs.yo";
31
-
19
+ { __yo_sync_statfs, __yo_statfs_buf_size, __yo_statfs_type, __yo_statfs_bsize, __yo_statfs_blocks, __yo_statfs_bfree, __yo_statfs_bavail, __yo_statfs_files, __yo_statfs_ffree } :: import("./externs.yo");
32
20
  // ============================================================================
33
21
  // statfs — Filesystem statistics (sync)
34
22
  // ============================================================================
35
-
36
23
  // Get filesystem statistics for the given path.
37
24
  // Writes result to `buf` (use statfs_buf_size() to allocate).
38
25
  // Returns 0 on success, -errno on failure.
39
- statfs :: (fn(path: *(u8), buf: *(u8)) -> i32)(
26
+ statfs :: (fn(path : *(u8), buf : *(u8)) -> i32)(
40
27
  __yo_sync_statfs(path, buf)
41
28
  );
42
-
43
29
  // ============================================================================
44
30
  // Statfs buffer helpers
45
31
  // ============================================================================
46
-
47
32
  // Get required buffer size for statfs.
48
33
  statfs_buf_size :: (fn() -> usize)(
49
34
  __yo_statfs_buf_size()
50
35
  );
51
-
52
36
  // Filesystem type (0 on platforms without type).
53
- statfs_type :: (fn(buf: *(u8)) -> u64)(
37
+ statfs_type :: (fn(buf : *(u8)) -> u64)(
54
38
  __yo_statfs_type(buf)
55
39
  );
56
-
57
40
  // Fundamental filesystem block size.
58
- statfs_bsize :: (fn(buf: *(u8)) -> u64)(
41
+ statfs_bsize :: (fn(buf : *(u8)) -> u64)(
59
42
  __yo_statfs_bsize(buf)
60
43
  );
61
-
62
44
  // Total data blocks in filesystem.
63
- statfs_blocks :: (fn(buf: *(u8)) -> u64)(
45
+ statfs_blocks :: (fn(buf : *(u8)) -> u64)(
64
46
  __yo_statfs_blocks(buf)
65
47
  );
66
-
67
48
  // Free blocks in filesystem.
68
- statfs_bfree :: (fn(buf: *(u8)) -> u64)(
49
+ statfs_bfree :: (fn(buf : *(u8)) -> u64)(
69
50
  __yo_statfs_bfree(buf)
70
51
  );
71
-
72
52
  // Free blocks available to unprivileged users.
73
- statfs_bavail :: (fn(buf: *(u8)) -> u64)(
53
+ statfs_bavail :: (fn(buf : *(u8)) -> u64)(
74
54
  __yo_statfs_bavail(buf)
75
55
  );
76
-
77
56
  // Total file nodes (inodes).
78
- statfs_files :: (fn(buf: *(u8)) -> u64)(
57
+ statfs_files :: (fn(buf : *(u8)) -> u64)(
79
58
  __yo_statfs_files(buf)
80
59
  );
81
-
82
60
  // Free file nodes (inodes).
83
- statfs_ffree :: (fn(buf: *(u8)) -> u64)(
61
+ statfs_ffree :: (fn(buf : *(u8)) -> u64)(
84
62
  __yo_statfs_ffree(buf)
85
63
  );
86
-
87
- export
64
+ export(
88
65
  statfs,
89
66
  statfs_buf_size,
90
67
  statfs_type,
@@ -94,4 +71,4 @@ export
94
71
  statfs_bavail,
95
72
  statfs_files,
96
73
  statfs_ffree
97
- ;
74
+ );
package/std/sys/statx.yo CHANGED
@@ -2,94 +2,67 @@
2
2
  //!
3
3
  //! Object wrapper around the C statx buffer, providing
4
4
  //! accessor methods for file metadata.
5
-
6
- {
7
- S_IFMT, S_IFREG, S_IFDIR, S_IFLNK
8
- } :: import "./constants.yo";
9
-
10
- {
11
- __yo_statx_mode, __yo_statx_size, __yo_statx_uid, __yo_statx_gid,
12
- __yo_statx_ino, __yo_statx_nlink,
13
- __yo_statx_mtime_sec, __yo_statx_mtime_nsec,
14
- __yo_statx_atime_sec, __yo_statx_atime_nsec,
15
- __yo_statx_ctime_sec, __yo_statx_ctime_nsec
16
- } :: import "./externs.yo";
17
-
5
+ { S_IFMT, S_IFREG, S_IFDIR, S_IFLNK } :: import("./constants.yo");
6
+ { __yo_statx_mode, __yo_statx_size, __yo_statx_uid, __yo_statx_gid, __yo_statx_ino, __yo_statx_nlink, __yo_statx_mtime_sec, __yo_statx_mtime_nsec, __yo_statx_atime_sec, __yo_statx_atime_nsec, __yo_statx_ctime_sec, __yo_statx_ctime_nsec } :: import("./externs.yo");
18
7
  // ============================================================================
19
8
  // Statx - File status from async stat operations
20
9
  // ============================================================================
21
-
22
10
  Statx :: struct(
23
- _buf_ptr: *(u8),
24
- _buf_size: usize
11
+ _buf_ptr : *(u8),
12
+ _buf_size : usize
25
13
  );
26
-
27
- impl(Statx,
28
- is_file : (fn(self: Self) -> bool)({
14
+ impl(
15
+ Statx,
16
+ is_file : (fn(self : Self) -> bool)({
29
17
  mode := __yo_statx_mode(self._buf_ptr);
30
18
  file_type := (mode & S_IFMT);
31
- return (file_type == S_IFREG);
19
+ return(file_type == S_IFREG);
32
20
  }),
33
-
34
- is_directory : (fn(self: Self) -> bool)({
21
+ is_directory : (fn(self : Self) -> bool)({
35
22
  mode := __yo_statx_mode(self._buf_ptr);
36
23
  file_type := (mode & S_IFMT);
37
- return (file_type == S_IFDIR);
24
+ return(file_type == S_IFDIR);
38
25
  }),
39
-
40
- is_symlink : (fn(self: Self) -> bool)({
26
+ is_symlink : (fn(self : Self) -> bool)({
41
27
  mode := __yo_statx_mode(self._buf_ptr);
42
28
  file_type := (mode & S_IFMT);
43
- return (file_type == S_IFLNK);
29
+ return(file_type == S_IFLNK);
44
30
  }),
45
-
46
- size : (fn(self: Self) -> i64)(
31
+ size : (fn(self : Self) -> i64)(
47
32
  __yo_statx_size(self._buf_ptr)
48
33
  ),
49
-
50
- mode : (fn(self: Self) -> u32)(
34
+ mode : (fn(self : Self) -> u32)(
51
35
  __yo_statx_mode(self._buf_ptr)
52
36
  ),
53
-
54
- uid : (fn(self: Self) -> u32)(
37
+ uid : (fn(self : Self) -> u32)(
55
38
  __yo_statx_uid(self._buf_ptr)
56
39
  ),
57
-
58
- gid : (fn(self: Self) -> u32)(
40
+ gid : (fn(self : Self) -> u32)(
59
41
  __yo_statx_gid(self._buf_ptr)
60
42
  ),
61
-
62
- ino : (fn(self: Self) -> u64)(
43
+ ino : (fn(self : Self) -> u64)(
63
44
  __yo_statx_ino(self._buf_ptr)
64
45
  ),
65
-
66
- nlink : (fn(self: Self) -> u64)(
46
+ nlink : (fn(self : Self) -> u64)(
67
47
  __yo_statx_nlink(self._buf_ptr)
68
48
  ),
69
-
70
- mtime_sec : (fn(self: Self) -> i64)(
49
+ mtime_sec : (fn(self : Self) -> i64)(
71
50
  __yo_statx_mtime_sec(self._buf_ptr)
72
51
  ),
73
-
74
- mtime_nsec : (fn(self: Self) -> u32)(
52
+ mtime_nsec : (fn(self : Self) -> u32)(
75
53
  __yo_statx_mtime_nsec(self._buf_ptr)
76
54
  ),
77
-
78
- atime_sec : (fn(self: Self) -> i64)(
55
+ atime_sec : (fn(self : Self) -> i64)(
79
56
  __yo_statx_atime_sec(self._buf_ptr)
80
57
  ),
81
-
82
- atime_nsec : (fn(self: Self) -> u32)(
58
+ atime_nsec : (fn(self : Self) -> u32)(
83
59
  __yo_statx_atime_nsec(self._buf_ptr)
84
60
  ),
85
-
86
- ctime_sec : (fn(self: Self) -> i64)(
61
+ ctime_sec : (fn(self : Self) -> i64)(
87
62
  __yo_statx_ctime_sec(self._buf_ptr)
88
63
  ),
89
-
90
- ctime_nsec : (fn(self: Self) -> u32)(
64
+ ctime_nsec : (fn(self : Self) -> u32)(
91
65
  __yo_statx_ctime_nsec(self._buf_ptr)
92
66
  )
93
67
  );
94
-
95
- export Statx;
68
+ export(Statx);
@@ -2,13 +2,8 @@
2
2
  //!
3
3
  //! Synchronous wrappers for `uname`/`gethostname`.
4
4
  //! Returns 0 on success, -errno / negative platform error on failure.
5
-
6
- { platform, Platform } :: import "../process";
7
- {
8
- __yo_sync_uname,
9
- __yo_sync_gethostname
10
- } :: import "./externs.yo";
11
-
5
+ { platform, Platform } :: import("../process");
6
+ { __yo_sync_uname, __yo_sync_gethostname } :: import("./externs.yo");
12
7
  // uname() layout constants.
13
8
  // Linux uses 65-byte fields (6 fields total including domainname).
14
9
  // macOS uses 256-byte fields (5 fields).
@@ -18,30 +13,30 @@ UTSNAME_FIELD_SIZE :: cond(
18
13
  (platform == Platform.Windows) => usize(256),
19
14
  true => usize(65)
20
15
  );
21
-
22
16
  UTSNAME_SIZE :: cond(
23
17
  (platform == Platform.Macos) => usize(1280),
24
18
  (platform == Platform.Windows) => usize(1280),
25
19
  true => usize(390)
26
20
  );
27
-
28
21
  UTSNAME_SYSNAME :: usize(0);
29
22
  UTSNAME_NODENAME :: UTSNAME_FIELD_SIZE;
30
23
  UTSNAME_RELEASE :: (UTSNAME_FIELD_SIZE * usize(2));
31
24
  UTSNAME_VERSION :: (UTSNAME_FIELD_SIZE * usize(3));
32
25
  UTSNAME_MACHINE :: (UTSNAME_FIELD_SIZE * usize(4));
33
-
34
- uname :: (fn(buf: *(u8)) -> i32)(
26
+ uname :: (fn(buf : *(u8)) -> i32)(
35
27
  __yo_sync_uname(buf)
36
28
  );
37
-
38
- gethostname :: (fn(name: *(u8), len: usize) -> i32)(
29
+ gethostname :: (fn(name : *(u8), len : usize) -> i32)(
39
30
  __yo_sync_gethostname(name, len)
40
31
  );
41
-
42
- export
43
- uname, gethostname,
44
- UTSNAME_SIZE, UTSNAME_FIELD_SIZE,
45
- UTSNAME_SYSNAME, UTSNAME_NODENAME,
46
- UTSNAME_RELEASE, UTSNAME_VERSION, UTSNAME_MACHINE
47
- ;
32
+ export(
33
+ uname,
34
+ gethostname,
35
+ UTSNAME_SIZE,
36
+ UTSNAME_FIELD_SIZE,
37
+ UTSNAME_SYSNAME,
38
+ UTSNAME_NODENAME,
39
+ UTSNAME_RELEASE,
40
+ UTSNAME_VERSION,
41
+ UTSNAME_MACHINE
42
+ );