commit 680261eec4895758ba79669f01b87e77af67e8ab Author: playX18 Date: Sun Feb 9 09:21:19 2025 +0700 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..60ad891 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# vmkit-core + +vmkit-core is a library which provides building blocks for building a language runtime. + +# Features +- Garbage Collector: Done by using [mmtk-core](https://github.com/mmtk/mmtk-core) +- Thread management: Threads can be spawned, suspended, resumed, killed. + + +## vmkit-core flavors + +We support three flavors of vmkit-core: +- `uncooperative`: This is the most conservative flavor. It exposes a BDWGC-like API, only provides Immix and MarkSweep GC plans, +and management of threads is fully internal to the library. +- `cooperative`: This is mostly-precise flavor. This flavor exposes advanced allocation API, requries runtime to call into `yieldpoint()`, +and also requires runtime to do write barriers and have precise object layout. Stack is left to be conservatively scanned. +- `full-precise`: This is precise flavor. Provides everything that `cooperative` provides, and also requires +runtime to not have any conservative assumptions such as conservative stack scanning. \ No newline at end of file