Overview
Terms
Software
Paper Drafts
People
Funding

Region SSCLI


Overview

We built region-based memory support into the SSCLI 2.0 environment and added new instructions in the CIL opcode set for supporting region operations.

We also implemented a (stand-alone) region inference system that automates the translation of initially garbage collected CLI (.NET) programs to programs using the region instructions and concept.


Terms

The Common Language Infrastructure (CLI) is an ECMA standard that describes the core of the .NET Framework. The Microsoft Shared Source CLI (SSCLI) is one of the implementations of the ECMA CLI standard, made publicly available for research purposes (while the Microsoft .NET Framework is a commercial implementation of CLI).

We modified Microsoft's SSCLI memory system (consisting of a default garbage collector) such that it now also incorporates a region-based memory subsystem. This subsystem is targeted for using a stack of lexically scoped regions in which the last region created is the first deleted. A region is used to give bounds to the lifetime of objects allocated within it. Deallocating a region deletes all its contents in one operation, resulting in better memory utilization regarding certain aspects.


Software

The pristine SSCLI 2.0 and its details can be found at:
http://msdn.microsoft.com/net/sscli/

Our modified SSCLI 2.0 containing a region-based memory subsystem:
- archive region-sscli20.zip expands to almost 1.5G of sources
   (please read the original license before proceeding)
- short tutorial for (initial phase of) adding a simple new opcode to SSCLI:
     readme.txt
     rotor.pdf
     opcodegen.pl
Running programs using the modified environment requires these points:
   - first run env.bat script from the sscli20 (root) directory
   - run a portable exe file using clix <program>.exe from anywhere
Using assembling/disassembling (using ilasm, ildasm in a similar way to clix) for the region-enabling of programs is partially detailed in our paper draft. You can consult the readfirst.html document found in sscli20's root for general information.

The additional region inference F# system is stand-alone:
- F# programming language: http://research.microsoft.com/fsharp/
- sources infer-src.zip, binary infer-bin.zip
- usage: infer cilfile.il takes an intermediate language (IL) file and outputs a region IL file


Paper Drafts

Short version, APLAS 2007 poster presentation abstract:
Region-Based Memory for CLI.pdf

The more detailed paper draft:
A Region Memory Subsystem for SSCLI.pdf


People

Contributors to Region SSCLI are:

Alexandru Stefan
Florin Craciun
Wei-Ngan Chin


Funding

This project is funded by Microsoft Research under the Phoenix/SSCLI initiative.