read-only GC spaces

Ivan Shmakov <[email protected]>
Newsgroups gmane.lisp.scheme.scheme48
Message-ID <[email protected]>
	I wonder, what it'd take to implement read-only GC spaces,
	either a read-only space for two-space GC, or arbitrary number
	of read-only spaces for Bibop?

	The implementation of read-only GC spaces would allow for mmap
	() system call to be used to memory-less map scheme48.image (or,
	possibly, even arbitrary data arrays), thus drastically reducing
	the per-process memory consumption for Scheme48 (from, I
	believe, about 5 MiB on amd64 currently, to probably less than 1
	MiB.)

	Also, it would allow for the whole Scheme48 run-time system to
	be pre-compiled into the image, thus saving both the time
	(otherwise needed to byte-compile the code) and memory space
	when loading extensions, thus making Scheme48 behavior
	comparable the the one of the languages (implementations) making
	use of shared libraries, such as C or Chicken Scheme, with
	respect to the memory consumption.

	I guess that since Bibop already supports multiple spaces, it'd
	be easier to implement read-only spaces support for it than for
	the two-space GC?  Is there any description of its internals, or
	should I start with the source code?

	Should the mmap () support be then implemented somewhere deeply
	within the VM?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.