PIKApp/plug-ins/script-fu/test/tests/TS/no-memory.scm

56 lines
1.3 KiB
Scheme
Raw Normal View History

2023-09-26 00:35:21 +02:00
; test memory limits in TS
; TS is known to be non-robust in face of memory exhaustion.
; See Manual.txt which says "TinyScheme is known to misbehave when memory is exhausted."
; numeric constants from tinyscheme-private.h
; There is no document (only the source code itself)
; explaining the limits.
; The limits here are from experiments.
; These only test the limits.
; Methods on the objects (string, vector, etc.) are tested elsewhere.
; Symbol limits
; There is no defined limit on count of symbols.
; The objlist is a hash table, entries allocated from cells.
; The lists in the hash table are practically unlimited.
; String limits
; Strings are malloced.
; Limit on string size derives from OS malloc limits.
; No practical limit in ScriptFu.
; Seems to work
; (make-string 260000 #\A)
; Vector limits.
; A vector is contiguous cells.
; TS allocates in segments.
; A vector can be no larger than two segments?
; succeeds
(assert '(make-vector 25000))
; REPL shows as #(() () ... ()) i.e. a vector of NIL, not initialized
; might not crash?
(define testVector (make-vector 25001))
; ????
(assert `(vector-fill! ,testVector 1))
; seems to hang
; (assert '(make-vector 50001))
; seems to crash
; (assert '(make-vector 200000))