[Barrelfish-users] AC implementation
Tim Harris (RESEARCH)
tharris at microsoft.com
Thu Feb 16 16:05:55 CET 2012
Unfortunately there isn't a very clean version outside the Barrelfish tree.
The Clang/LLVM-based implementation is very old. In effect it included changes within the compiler instead of using GCC macros (most of the changes were toward the front end in Clang).
There are really two parts to AC:
* The support for the language constructs, and the runtime system to support them.
* The integration between the runtime system and a set of IO functions.
What system are you trying to use AC in?
The first part of AC should be relatively easy to extract from Barrelfish. Are you looking at trying this on Linux, or on Windows (or something else?). Moving to Linux is the easiest case because the Barrelfish x86 calling conventions follow those of Linux, and so there shouldn't be any changes to the assembly language functions. You will need to extract these files from the BF tree: include/thc/thcsync.h thcinternal.h thc.h. (Not thcstubs.h) lib/thc/thcsync.c, thc.c. (Again, not thcstubs.c). Then build these _without_ defining BARRELFISH. My intention was that it should build cleanly (but it wouldn't surprise me if there are some glitches - let me know).
The one piece of thc.c that will need adapting to another system is IdleFn which runs when a thread is otherwise blocks. It calls the BF event_dispatch function to wait for the next event to occur... this will need to be changed to the corresponding blocking operation for some other system.
The second part of AC is more difficult - i.e. integration between the THC runtime system and a set of IO functions. Porting the Barrelfish message passing layer to another system would probably be a substantial piece of work. I think the AC paper at OOPSLA had an example of how Windows IO functions can be integrated with AC.
From: Abhishek Kulkarni [mailto:adkulkar at indiana.edu]
Sent: 15 February 2012 21:49
To: barrelfish-users at lists.inf.ethz.ch
Subject: [Barrelfish-users] AC implementation
Is there a non-barrelfish version of AC? I tried
building "thc" out-of-the-tree but it has one too
many dependencies. The OOPSLA paper also
takes about a clang/llvm implementation -- is that
available for download somewhere?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Barrelfish-users