JVSTM is a Java library that implements our approach to Software Transactional Memories.
The two core concepts introduced by JVSTM are Transactions and Versioned Boxes.
The goal of this work is to allow transaction programming at the programming language level, independently of an external transaction manager.
We will provide in the near future a tutorial for JVSTM together with some examples.
For now, the best source of information on JVSTM is the paper describing the concepts underlying JVSTM that we presented at the SCOOL05 workshop. The slides of the presentation given at the workshop provide further information.
A revised version of the SCOOL05 paper appeared in the Science of Computer Programming Journal.
We are releasing the current version of the JVSTM source code with an LGPL license.
This implementation is still under active development. However, the current version is being used in a production environment by the FénixEDU Project since September 2005.
The source code of JVSTM is maintained in a darcs repository available at http://www.esw.inesc-id.pt/~jcachopo/darcs/jvstm.
So, to obtain a fresh copy of the JVSTM code from the darcs repository, use the following command:
darcs get http://www.esw.inesc-id.pt/~jcachopo/darcs/jvstm
By using this command you'll get a darcs repository for yourself that
you may change at your will. If you want to send me patches or any
other contribution, please use the darcs send command
from within this repository.
If you don't have darcs, however, you can still get source tarballs from the downloads directory.
You may compile the code by using ant at the top-level directory. The default target is the "compile" target.
If you want to make a jar with the compiled code, issue the command
ant jar, and you'll get the file
jvstm.jar in the dist sub-directory.
Any comments or questions regarding this work are very well welcomed.
Please send them to João Cachopo at joao.cachopo[at]inesc-id.pt.