update to the doc tool and to arr.sl

This commit is contained in:
igor
2026-02-19 16:14:41 +01:00
parent 2b311c7be7
commit 97f3df3836
4 changed files with 672 additions and 89 deletions

View File

@@ -11,30 +11,30 @@ word main
dup arr_data over 24 + == puti cr
# arr_push
10 swap arr_push
20 swap arr_push
30 swap arr_push
dup 10 arr_push
dup 20 arr_push
dup 30 arr_push
# arr_len / arr_cap after growth
dup arr_len puti cr
dup arr_cap puti cr
# arr_get
dup 0 swap arr_get puti cr
dup 1 swap arr_get puti cr
dup 2 swap arr_get puti cr
dup 0 arr_get puti cr
dup 1 arr_get puti cr
dup 2 arr_get puti cr
# arr_set
dup 99 swap 1 swap arr_set
dup 1 swap arr_get puti cr
dup 99 1 arr_set
dup 1 arr_get puti cr
# arr_reserve (with len > 0 so element copy path is exercised)
8 swap arr_reserve
dup 8 arr_reserve
dup arr_cap puti cr
dup arr_len puti cr
dup 0 swap arr_get puti cr
dup 1 swap arr_get puti cr
dup 2 swap arr_get puti cr
dup 0 arr_get puti cr
dup 1 arr_get puti cr
dup 2 arr_get puti cr
# arr_pop (including empty pop)
arr_pop puti cr
@@ -49,9 +49,9 @@ word main
[ 7 8 9 ] dup arr_to_dyn
dup arr_len puti cr
dup arr_cap puti cr
dup 0 swap arr_get puti cr
dup 1 swap arr_get puti cr
dup 2 swap arr_get puti cr
dup 0 arr_get puti cr
dup 1 arr_get puti cr
dup 2 arr_get puti cr
arr_free
# free list allocation: bytes = (len + 1) * 8
@@ -59,41 +59,41 @@ word main
# dyn_arr_sorted (copy) should not mutate source
5 arr_new
3 swap arr_push
1 swap arr_push
2 swap arr_push
dup 3 arr_push
dup 1 arr_push
dup 2 arr_push
dup dyn_arr_sorted
dup 0 swap arr_get puti cr
dup 1 swap arr_get puti cr
dup 2 swap arr_get puti cr
dup 0 arr_get puti cr
dup 1 arr_get puti cr
dup 2 arr_get puti cr
arr_free
dup 0 swap arr_get puti cr
dup 1 swap arr_get puti cr
dup 2 swap arr_get puti cr
dup 0 arr_get puti cr
dup 1 arr_get puti cr
dup 2 arr_get puti cr
# dyn_arr_sort (alias) sorts in place
dyn_arr_sort
dup 0 swap arr_get puti cr
dup 1 swap arr_get puti cr
dup 2 swap arr_get puti cr
dup 0 arr_get puti cr
dup 1 arr_get puti cr
dup 2 arr_get puti cr
arr_free
# dyn_arr_sorted (alias) returns a sorted copy
5 arr_new
4 swap arr_push
9 swap arr_push
6 swap arr_push
dup 4 arr_push
dup 9 arr_push
dup 6 arr_push
dup dyn_arr_sorted
dup 0 swap arr_get puti cr
dup 1 swap arr_get puti cr
dup 2 swap arr_get puti cr
dup 0 arr_get puti cr
dup 1 arr_get puti cr
dup 2 arr_get puti cr
arr_free
dup 0 swap arr_get puti cr
dup 1 swap arr_get puti cr
dup 2 swap arr_get puti cr
dup 0 arr_get puti cr
dup 1 arr_get puti cr
dup 2 arr_get puti cr
arr_free
end

View File

@@ -4,21 +4,21 @@ import ../stdlib/arr.sl
word main
[ 4 1 3 2 ] dup arr_sort
dup 0 swap arr_get_static puti cr
dup 1 swap arr_get_static puti cr
dup 2 swap arr_get_static puti cr
dup 3 swap arr_get_static puti cr
dup 0 arr_get_static puti cr
dup 1 arr_get_static puti cr
dup 2 arr_get_static puti cr
dup 3 arr_get_static puti cr
arr_static_free
[ 9 5 7 ] dup arr_sorted
dup 0 swap arr_get_static puti cr
dup 1 swap arr_get_static puti cr
dup 2 swap arr_get_static puti cr
dup 0 arr_get_static puti cr
dup 1 arr_get_static puti cr
dup 2 arr_get_static puti cr
swap
dup 0 swap arr_get_static puti cr
dup 1 swap arr_get_static puti cr
dup 2 swap arr_get_static puti cr
dup 0 arr_get_static puti cr
dup 1 arr_get_static puti cr
dup 2 arr_get_static puti cr
arr_static_free
arr_static_free