21:17:17pjbsonny: VM is managed by the OS. The user space programs may just take the behavior of the VM into account to avoid bad performance. Mostly, by avoiding to scan the whole addressing space while GCing. Hence the introduction of new algorithms, such as generationnal GCs.
21:18:01pjb(well, with VM, memory can also be allocated and deallocated page by page at specific addresses instead of heap/stack fashion, so this can help).
21:19:26pjbsonny: note: GC was invented for lisp. As well as timesharing (for the REPLs), and stacks (fortran didn't have stack so no recursive functions).
21:21:16pjbIf you don't have recursive functions, you don't need a call stack with function parameters. Instead, you can just store the parameters in a specific record for each function.
21:21:31pjbAnd store the return addresses in those records!
21:21:50pjbYeah, lisp inventors were smart and advanced.