expand stdlib

This commit is contained in:
2025-11-12 11:57:34 +01:00
parent 2b316cbc16
commit d9819476f8
8 changed files with 94 additions and 64 deletions

View File

@@ -4,7 +4,8 @@ func main[] : I64
let src_len: I64 = str.len(src)
let i: I64 = 0
let memory: Ptr = c.calloc(1, 30000)
let memory: Ptr = mem.alloc(30000)
mem.zero(memory, 30000)
let p: I64 = 0
while i < src_len

View File

@@ -4,7 +4,10 @@ func main[argc: I64, argv: Ptr] : I64
let url: String = mem.read64(argv + 8)
if c.strncmp(url, "http://", 7) != 0
if str.len(url) <= 7
dbg.panic("missing url scheme")
if !str.equal(str.substr(url, 0, 7), "http://")
dbg.panic("invalid url scheme")
let url_len: I64 = str.len(url)

View File

@@ -1,26 +1,3 @@
func quicksort[arr: Array] : Void
do_quicksort(arr, 0, array.size(arr)-1)
func do_quicksort[arr: Array, low: I64, high: I64] : Void
if low < high
let i: I64 = partition(arr, low, high)
do_quicksort(arr, low, i - 1)
do_quicksort(arr, i + 1, high)
func partition[arr: Array, low: I64, high: I64] : I64
let pivot: I64 = arr[high]
let i: I64 = low - 1
for j in (low)..high
if arr[j] <= pivot
i = i + 1
let temp: I64 = arr[i]
array.set(arr, i, arr[j])
array.set(arr, j, temp)
let temp: I64 = arr[i + 1]
array.set(arr, i + 1, arr[high])
array.set(arr, high, temp)
return i + 1
func main[] : I64
let arr: Array = []
for i in 0..10
@@ -30,7 +7,7 @@ func main[] : I64
io.print_i64(arr[i])
io.print("------------")
quicksort(arr)
alg.quicksort(arr)
for i in 0..array.size(arr)
io.print_i64(arr[i])