Skip to content

Commit e4d6cf8

Browse files
authored
Update arena.hcs
1 parent 9ed0fe9 commit e4d6cf8

1 file changed

Lines changed: 4 additions & 11 deletions

File tree

libs/core/lib/memory/arena.hcs

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
1-
!! Prosty alokator arenowy (bump allocator).
2-
!! To jeden z alternatywnych systemow pamieci dostepnych w `core` (get <core:memory::arena>).
3-
!! Dzisiejszy backend (transpilacja do Pythona) nie robi prawdziwej reczne
4-
!! alokacji pamieci - `manual [ ... ]` oznacza tu miejsca, ktore docelowy
5-
!! natywny backend (Rust) zaimplementuje jako realne, reczne zarzadzanie
6-
!! pamiecia (bez GC). Semantyka API ma pozostac identyczna.
7-
81
struct Arena [
9-
buffer: List,
2+
buffer: List<Int>,
103
offset: Int,
114
capacity: Int
125
]
@@ -18,10 +11,10 @@ fun arena_new(capacity: Int) -> Arena [
1811
]
1912

2013
!! Alokuje `value` w arenie i zwraca jego indeks (odpowiednik "wskaznika").
21-
fun arena_alloc(a: Arena, value: Any) -> Int [
14+
fun arena_alloc(a: Arena, value: Int) -> Int [
2215
manual [
2316
if a.offset >= a.capacity [
24-
log("arena: brak miejsca, powiekszam pojemnosc")
17+
log("arena: brak miejsca w arenie")
2518
]
2619
]
2720
a.buffer = a.buffer + [value]
@@ -31,7 +24,7 @@ fun arena_alloc(a: Arena, value: Any) -> Int [
3124
]
3225

3326
!! Odczytuje wartosc spod danego indeksu areny.
34-
fun arena_get(a: Arena, idx: Int) -> Any [
27+
fun arena_get(a: Arena, idx: Int) -> Int [
3528
end a.buffer[idx]
3629
]
3730

0 commit comments

Comments
 (0)