@salang/sa 0.1.2 → 0.1.4
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.
- package/bin/sa.js +19 -1
- package/package.json +8 -7
- package/sa_std/alloc/layout.sal +12 -0
- package/sa_std/alloc/prelude.sa +1 -0
- package/sa_std/alloc/prelude.sal +1 -0
- package/sa_std/alloc/string.sa +3 -0
- package/sa_std/alloc/vec.sa +684 -0
- package/sa_std/alloc/vec.sal +4 -0
- package/sa_std/any.sa +130 -0
- package/sa_std/any.sal +23 -0
- package/sa_std/array.sa +1876 -0
- package/sa_std/ascii.sa +2 -0
- package/sa_std/ascii.sal +1 -0
- package/sa_std/async.sla +116 -0
- package/sa_std/binary_heap.sa +3003 -0
- package/sa_std/binary_heap.sal +7 -0
- package/sa_std/borrow.sa +171 -0
- package/sa_std/borrow.sal +13 -0
- package/sa_std/btree_map.sa +2210 -0
- package/sa_std/btree_map.sal +11 -0
- package/sa_std/btree_set.sa +1072 -0
- package/sa_std/btree_set.sal +6 -0
- package/sa_std/char.sa +1309 -0
- package/sa_std/char.sal +50 -0
- package/sa_std/cmp.sa +554 -0
- package/sa_std/cmp.sal +14 -0
- package/sa_std/collections/binary_heap.sa +1 -0
- package/sa_std/collections/btree_map.sa +1 -0
- package/sa_std/collections/btree_set.sa +1 -0
- package/sa_std/collections/hashmap.sa +1 -0
- package/sa_std/collections/hashset.sa +1 -0
- package/sa_std/collections/linked_list.sa +1120 -0
- package/sa_std/collections/linked_list.sal +10 -0
- package/sa_std/collections/prelude.sa +7 -0
- package/sa_std/collections/prelude.sal +1 -0
- package/sa_std/collections/vec_deque.sa +1 -0
- package/sa_std/collections.sal +13 -0
- package/sa_std/convert.sa +1115 -0
- package/sa_std/convert.sal +24 -0
- package/sa_std/core/arc.sa +233 -0
- package/sa_std/core/arc.sal +4 -0
- package/sa_std/core/ascii.sa +784 -0
- package/sa_std/core/ascii.sal +34 -0
- package/sa_std/core/bit.sa +41 -0
- package/sa_std/core/box.sa +1 -0
- package/sa_std/core/box.sal +2 -0
- package/sa_std/core/cell.sa +108 -0
- package/sa_std/core/cell.sal +5 -0
- package/sa_std/core/cleanup.sa +26 -0
- package/sa_std/core/control.sa +20 -0
- package/sa_std/core/derive.sa +60 -0
- package/sa_std/core/derive.sal +1 -0
- package/sa_std/core/dispatch.sa +7 -0
- package/sa_std/core/dispatch.sal +5 -0
- package/sa_std/core/future.sa +777 -0
- package/sa_std/core/future.sal +73 -0
- package/sa_std/core/hash.sa +48 -0
- package/sa_std/core/iter.sa +2805 -0
- package/sa_std/core/iter.sal +4 -0
- package/sa_std/core/loop.sa +60 -0
- package/sa_std/core/mem.sa +220 -0
- package/sa_std/core/option.sa +825 -0
- package/sa_std/core/option.sal +11 -0
- package/sa_std/core/panic.sa +23 -0
- package/sa_std/core/panic.sal +12 -0
- package/sa_std/core/prelude.sa +18 -0
- package/sa_std/core/prelude.sal +18 -0
- package/sa_std/core/rc.sa +225 -0
- package/sa_std/core/rc.sal +4 -0
- package/sa_std/core/refcell.sa +283 -0
- package/sa_std/core/refcell.sal +13 -0
- package/sa_std/core/result.sa +708 -0
- package/sa_std/core/result.sal +6 -0
- package/sa_std/core/rust_patterns.sal +295 -0
- package/sa_std/core/sa_core.sa +84 -0
- package/sa_std/core/slice.sa +4021 -0
- package/sa_std/core/slice.sal +7 -0
- package/sa_std/core/task.sa +112 -0
- package/sa_std/core/task.sal +15 -0
- package/sa_std/core/trait_object.sa +26 -0
- package/sa_std/core/trait_object.sal +4 -0
- package/sa_std/core/waker.sa +289 -0
- package/sa_std/core/waker.sal +31 -0
- package/sa_std/core/weak.sa +2 -0
- package/sa_std/core/weak.sal +4 -0
- package/sa_std/cow.sa +3 -0
- package/sa_std/cow.sal +2 -0
- package/sa_std/cstring.sa +3 -0
- package/sa_std/cstring.sal +2 -0
- package/sa_std/default.sa +99 -0
- package/sa_std/duration.sa +3 -0
- package/sa_std/duration.sal +2 -0
- package/sa_std/encoding/json.sa +259 -0
- package/sa_std/encoding/json.sai +54 -0
- package/sa_std/encoding/json.sal +35 -0
- package/sa_std/encoding/prelude.sa +1 -0
- package/sa_std/encoding/prelude.sal +0 -0
- package/sa_std/env.sa +390 -0
- package/sa_std/env.sai +25 -0
- package/sa_std/error.sa +253 -0
- package/sa_std/error.sal +44 -0
- package/sa_std/ffi/cstring.sa +3 -0
- package/sa_std/ffi/cstring.sal +1 -0
- package/sa_std/ffi/prelude.sa +2 -0
- package/sa_std/ffi/prelude.sal +2 -0
- package/sa_std/ffi.sa +635 -0
- package/sa_std/ffi.sal +51 -0
- package/sa_std/fmt.sa +2 -0
- package/sa_std/fmt.sai +18 -0
- package/sa_std/fmt.sal +35 -0
- package/sa_std/fs.sa +1023 -0
- package/sa_std/fs.sai +127 -0
- package/sa_std/fs.sal +51 -0
- package/sa_std/future.sa +2 -0
- package/sa_std/future.sal +1 -0
- package/sa_std/hash.sa +1486 -0
- package/sa_std/hash.sal +13 -0
- package/sa_std/hashmap.sa +1962 -0
- package/sa_std/hashmap.sal +20 -0
- package/sa_std/hashset.sa +1004 -0
- package/sa_std/hashset.sal +18 -0
- package/sa_std/http2.sa +78 -0
- package/sa_std/http2.sai +26 -0
- package/sa_std/http2.sal +36 -0
- package/sa_std/instant.sa +3 -0
- package/sa_std/instant.sal +2 -0
- package/sa_std/io/buf_reader.sa +43 -0
- package/sa_std/io/buf_writer.sa +35 -0
- package/sa_std/io/bufio.sa +4 -0
- package/sa_std/io/bufio.sal +4 -0
- package/sa_std/io/prelude.sa +1 -0
- package/sa_std/io/prelude.sal +1 -0
- package/sa_std/io/print.sa +2 -0
- package/sa_std/io/print.sai +3 -0
- package/sa_std/io.sa +925 -0
- package/sa_std/io.sai +25 -0
- package/sa_std/io.sal +84 -0
- package/sa_std/iter.sa +2 -0
- package/sa_std/iter.sal +1 -0
- package/sa_std/join_handle.sa +3 -0
- package/sa_std/join_handle.sal +2 -0
- package/sa_std/libsa_async.sa +80 -0
- package/sa_std/m_async.sa +137 -0
- package/sa_std/m_async.sal +30 -0
- package/sa_std/m_async.sla +2 -0
- package/sa_std/manually_drop.sa +3 -0
- package/sa_std/manually_drop.sal +2 -0
- package/sa_std/marker/phantom_data.sa +3 -0
- package/sa_std/marker/phantom_data.sal +1 -0
- package/sa_std/marker/prelude.sa +4 -0
- package/sa_std/marker/prelude.sal +4 -0
- package/sa_std/marker.sa +220 -0
- package/sa_std/marker.sal +15 -0
- package/sa_std/math.sa +84 -0
- package/sa_std/math.sai +10 -0
- package/sa_std/mem/manually_drop.sa +3 -0
- package/sa_std/mem/manually_drop.sal +1 -0
- package/sa_std/mem/prelude.sa +2 -0
- package/sa_std/mem/prelude.sal +2 -0
- package/sa_std/mem.sa +564 -0
- package/sa_std/mem.sal +40 -0
- package/sa_std/modstate.sai +19 -0
- package/sa_std/net.sa +4227 -0
- package/sa_std/net.sai +239 -0
- package/sa_std/net.sal +159 -0
- package/sa_std/netx.sa +85 -0
- package/sa_std/netx.sai +11 -0
- package/sa_std/netx.sal +39 -0
- package/sa_std/nonzero.sa +3 -0
- package/sa_std/nonzero.sal +2 -0
- package/sa_std/num/nonzero.sa +3 -0
- package/sa_std/num/nonzero.sal +1 -0
- package/sa_std/num/prelude.sa +3 -0
- package/sa_std/num/prelude.sal +3 -0
- package/sa_std/num.sa +17302 -0
- package/sa_std/num.sai +11 -0
- package/sa_std/num.sal +341 -0
- package/sa_std/ops.sa +1884 -0
- package/sa_std/ops.sal +68 -0
- package/sa_std/option.sa +2 -0
- package/sa_std/option.sal +1 -0
- package/sa_std/os/fd.sa +96 -0
- package/sa_std/os/fd.sai +7 -0
- package/sa_std/os/fd.sal +11 -0
- package/sa_std/os/prelude.sa +2 -0
- package/sa_std/os/prelude.sal +1 -0
- package/sa_std/os/unix_ffi.sa +271 -0
- package/sa_std/panic.sa +1 -0
- package/sa_std/panic.sal +1 -0
- package/sa_std/path.sa +3170 -0
- package/sa_std/path.sal +12 -0
- package/sa_std/phantom_data.sa +3 -0
- package/sa_std/phantom_data.sal +2 -0
- package/sa_std/pin.sa +79 -0
- package/sa_std/pin.sal +5 -0
- package/sa_std/plugin_async.sa +90 -0
- package/sa_std/plugin_async.sal +29 -0
- package/sa_std/plugin_async.sla +4 -0
- package/sa_std/plugin_http_async.sa +46 -0
- package/sa_std/plugin_http_server.sa +61 -0
- package/sa_std/plugin_http_server.sla +2 -0
- package/sa_std/plugin_sqlite.sa +106 -0
- package/sa_std/plugin_sqlite.sla +2 -0
- package/sa_std/prelude.sa +60 -0
- package/sa_std/prelude.sal +55 -0
- package/sa_std/process.sa +916 -0
- package/sa_std/process.sai +57 -0
- package/sa_std/process.sal +27 -0
- package/sa_std/ptr.sa +503 -0
- package/sa_std/ptr.sal +2 -0
- package/sa_std/result.sa +2 -0
- package/sa_std/result.sal +1 -0
- package/sa_std/rust_core.sa +51 -0
- package/sa_std/rust_core.sal +26 -0
- package/sa_std/sa.mod +7 -0
- package/sa_std/sort.sa +156 -0
- package/sa_std/str.sla +13 -0
- package/sa_std/string.sa +12240 -0
- package/sa_std/string.sai +25 -0
- package/sa_std/string.sal +17 -0
- package/sa_std/string_format.sa +269 -0
- package/sa_std/sync/atomic.sa +1500 -0
- package/sa_std/sync/atomic.sal +45 -0
- package/sa_std/sync/barrier.sa +105 -0
- package/sa_std/sync/barrier.sal +7 -0
- package/sa_std/sync/condvar.sa +240 -0
- package/sa_std/sync/condvar.sal +4 -0
- package/sa_std/sync/mpsc.sa +758 -0
- package/sa_std/sync/mpsc.sal +42 -0
- package/sa_std/sync/mpsc_list.sa +255 -0
- package/sa_std/sync/mpsc_list.sal +3 -0
- package/sa_std/sync/mutex.sa +182 -0
- package/sa_std/sync/mutex.sal +7 -0
- package/sa_std/sync/once.sa +371 -0
- package/sa_std/sync/once.sal +31 -0
- package/sa_std/sync/poison.sa +36 -0
- package/sa_std/sync/poison.sal +11 -0
- package/sa_std/sync/prelude.sa +8 -0
- package/sa_std/sync/prelude.sal +7 -0
- package/sa_std/sync/rwlock.sa +369 -0
- package/sa_std/sync/rwlock.sal +13 -0
- package/sa_std/task.sa +2 -0
- package/sa_std/task.sal +1 -0
- package/sa_std/term.sa +2 -0
- package/sa_std/term.sai +10 -0
- package/sa_std/term.sal +33 -0
- package/sa_std/testing/assert.sai +4 -0
- package/sa_std/testing/mock_io.sa +174 -0
- package/sa_std/testing/mock_io.sal +5 -0
- package/sa_std/testing/prelude.sa +2 -0
- package/sa_std/testing/prelude.sal +1 -0
- package/sa_std/text/prelude.sa +1 -0
- package/sa_std/text/prelude.sal +1 -0
- package/sa_std/text/regex.sa +2 -0
- package/sa_std/text/regex.sai +9 -0
- package/sa_std/text/regex.sal +33 -0
- package/sa_std/thread/join_handle.sa +3 -0
- package/sa_std/thread/join_handle.sal +1 -0
- package/sa_std/thread/prelude.sa +4 -0
- package/sa_std/thread/prelude.sal +3 -0
- package/sa_std/thread.sa +160 -0
- package/sa_std/thread.sai +11 -0
- package/sa_std/thread.sal +4 -0
- package/sa_std/thread_local.sa +45 -0
- package/sa_std/thread_local.sai +9 -0
- package/sa_std/time/duration.sa +3 -0
- package/sa_std/time/duration.sal +1 -0
- package/sa_std/time/instant.sa +3 -0
- package/sa_std/time/instant.sal +1 -0
- package/sa_std/time/prelude.sa +4 -0
- package/sa_std/time/prelude.sal +4 -0
- package/sa_std/time.sa +850 -0
- package/sa_std/time.sai +37 -0
- package/sa_std/time.sal +35 -0
- package/sa_std/time.sla +67 -0
- package/sa_std/tls_client.sai +39 -0
- package/sa_std/vec.sa +5754 -0
- package/sa_std/vec.sal +1 -0
- package/sa_std/vec_deque.sa +4925 -0
- package/sa_std/vec_deque.sal +8 -0
- package/sa_std/vec_runtime_macros.sa +11 -0
- package/sa_std/ws_client.sai +57 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#def Poll_SIZE = 16
|
|
2
|
+
#def Poll_tag = +0
|
|
3
|
+
#def Poll_value = +8
|
|
4
|
+
#def Poll_PENDING = 0
|
|
5
|
+
#def Poll_READY = 1
|
|
6
|
+
|
|
7
|
+
#def PollResult_SIZE = 32
|
|
8
|
+
#def PollResult_poll_tag = +0
|
|
9
|
+
#def PollResult_result_tag = +8
|
|
10
|
+
#def PollResult_ok = +16
|
|
11
|
+
#def PollResult_err = +24
|
|
12
|
+
|
|
13
|
+
#def PollOptionResult_SIZE = 40
|
|
14
|
+
#def PollOptionResult_poll_tag = +0
|
|
15
|
+
#def PollOptionResult_option_tag = +8
|
|
16
|
+
#def PollOptionResult_result_tag = +16
|
|
17
|
+
#def PollOptionResult_ok = +24
|
|
18
|
+
#def PollOptionResult_err = +32
|
|
19
|
+
|
|
20
|
+
#def Context_SIZE = 32
|
|
21
|
+
#def Context_waker = +0
|
|
22
|
+
#def Context_local_waker = +8
|
|
23
|
+
#def Context_ext = +16
|
|
24
|
+
#def Context_data = +24
|
|
25
|
+
|
|
26
|
+
#def ContextBuilder_SIZE = 32
|
|
27
|
+
#def ContextBuilder_waker = +0
|
|
28
|
+
#def ContextBuilder_local_waker = +8
|
|
29
|
+
#def ContextBuilder_ext = +16
|
|
30
|
+
#def ContextBuilder_data = +24
|
|
31
|
+
|
|
32
|
+
#def Future_SIZE = 16
|
|
33
|
+
#def Future_data = +0
|
|
34
|
+
#def Future_vtable = +8
|
|
35
|
+
#def FuturePollSlot = +0
|
|
36
|
+
|
|
37
|
+
#def ReadyFuture_SIZE = 16
|
|
38
|
+
#def ReadyFuture_state = +0
|
|
39
|
+
#def ReadyFuture_value = +8
|
|
40
|
+
|
|
41
|
+
#def PendingFuture_SIZE = 8
|
|
42
|
+
#def PendingFuture_marker = +0
|
|
43
|
+
|
|
44
|
+
#def PollFnFuture_SIZE = 16
|
|
45
|
+
#def PollFnFuture_data = +0
|
|
46
|
+
#def PollFnFuture_vtable = +8
|
|
47
|
+
#def PollFnFuture_poll_fn = +8
|
|
48
|
+
|
|
49
|
+
#def FuturePair_SIZE = 16
|
|
50
|
+
#def FuturePair_left = +0
|
|
51
|
+
#def FuturePair_right = +8
|
|
52
|
+
|
|
53
|
+
#def FutureEither_SIZE = 24
|
|
54
|
+
#def FutureEither_side = +0
|
|
55
|
+
#def FutureEither_left = +8
|
|
56
|
+
#def FutureEither_right = +16
|
|
57
|
+
|
|
58
|
+
#def FutureJoin2State_SIZE = 48
|
|
59
|
+
#def FutureJoin2State_left = +0
|
|
60
|
+
#def FutureJoin2State_right = +8
|
|
61
|
+
#def FutureJoin2State_left_value = +16
|
|
62
|
+
#def FutureJoin2State_right_value = +24
|
|
63
|
+
#def FutureJoin2State_left_done = +32
|
|
64
|
+
#def FutureJoin2State_right_done = +40
|
|
65
|
+
|
|
66
|
+
#def FutureSelect2State_SIZE = 24
|
|
67
|
+
#def FutureSelect2State_left = +0
|
|
68
|
+
#def FutureSelect2State_right = +8
|
|
69
|
+
#def FutureSelect2State_winner = +16
|
|
70
|
+
|
|
71
|
+
#def FutureSelect_NONE = 0
|
|
72
|
+
#def FutureSelect_LEFT = 1
|
|
73
|
+
#def FutureSelect_RIGHT = 2
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
@import "../hashmap.sal"
|
|
2
|
+
@import "../hashmap.sa"
|
|
3
|
+
|
|
4
|
+
[MACRO] HASH_PTR %out_hash, %key_reg
|
|
5
|
+
%out_hash = call @map_hash_ptr(&%key_reg)
|
|
6
|
+
[END_MACRO]
|
|
7
|
+
|
|
8
|
+
[MACRO] HASH_MIX %out_hash, %lhs, %rhs
|
|
9
|
+
__hash_mix_xor_%out_hash = xor %lhs, %rhs
|
|
10
|
+
__hash_mix_shr_%out_hash = lshr __hash_mix_xor_%out_hash, 33
|
|
11
|
+
%out_hash = xor __hash_mix_xor_%out_hash, __hash_mix_shr_%out_hash
|
|
12
|
+
!__hash_mix_shr_%out_hash
|
|
13
|
+
!__hash_mix_xor_%out_hash
|
|
14
|
+
[END_MACRO]
|
|
15
|
+
|
|
16
|
+
[MACRO] HASH_MOD %out_index, %hash_value, %capacity
|
|
17
|
+
__hash_mod_cap_%out_index = sub %capacity, 1
|
|
18
|
+
%out_index = and %hash_value, __hash_mod_cap_%out_index
|
|
19
|
+
!__hash_mod_cap_%out_index
|
|
20
|
+
[END_MACRO]
|
|
21
|
+
|
|
22
|
+
[MACRO] PROBE_START %out_index, %hash_value, %capacity
|
|
23
|
+
EXPAND HASH_MOD %out_index, %hash_value, %capacity
|
|
24
|
+
[END_MACRO]
|
|
25
|
+
|
|
26
|
+
[MACRO] PROBE_NEXT %out_index, %current_index, %capacity
|
|
27
|
+
__probe_next_%out_index = add %current_index, 1
|
|
28
|
+
__probe_wrap_%out_index = eq __probe_next_%out_index, %capacity
|
|
29
|
+
br __probe_wrap_%out_index -> L_PROBE_NEXT_WRAP_%out_index, L_PROBE_NEXT_CONT_%out_index
|
|
30
|
+
L_PROBE_NEXT_WRAP_%out_index:
|
|
31
|
+
%out_index = add 0, 0
|
|
32
|
+
!__probe_wrap_%out_index
|
|
33
|
+
!__probe_next_%out_index
|
|
34
|
+
jmp L_PROBE_NEXT_END_%out_index
|
|
35
|
+
L_PROBE_NEXT_CONT_%out_index:
|
|
36
|
+
%out_index = add __probe_next_%out_index, 0
|
|
37
|
+
!__probe_wrap_%out_index
|
|
38
|
+
!__probe_next_%out_index
|
|
39
|
+
L_PROBE_NEXT_END_%out_index:
|
|
40
|
+
[END_MACRO]
|
|
41
|
+
|
|
42
|
+
[MACRO] MAP_LOOKUP %out_value, %map_reg, %key_reg
|
|
43
|
+
%out_value = call @sa_map_get(&%map_reg, &%key_reg)
|
|
44
|
+
[END_MACRO]
|
|
45
|
+
|
|
46
|
+
[MACRO] MAP_INSERT_OR_UPDATE %map_reg, %key_reg, %value_reg
|
|
47
|
+
call @sa_map_put(&%map_reg, &%key_reg, &%value_reg)
|
|
48
|
+
[END_MACRO]
|