Clojure's STM

28 views
Skip to first unread message

Rok Lenarcic

unread,
Sep 18, 2009, 11:02:24 AM9/18/09
to Clojure Study Group Washington DC
I'm doing a paper about various STM implementations out there and I'm
interested in Clojure's STM. I have problem finding any information
about implementation details (not familiar with Clojure). Can someone
help me with that by providing implementation details or information
source?

Craig Andera

unread,
Sep 21, 2009, 2:08:20 PM9/21/09
to clojure-...@googlegroups.com
I take it the source code is not what you're looking for: Clojure's source code is here [2]. That's the ultimate authority, of course, and I'm not sure you're going to get the answers you want without rolling up your sleeves and diving in to it. Not sure whether the STM is written in Java or Clojure - Clojure itself is implemented in both. 

I don't know of anything that talks about the particular implementation, but you might check this [1] out, as it is somewhat related. Also, you could try pinging the author to see if they can help you further. Also, Stu Halloway's book [3] is quite good. 

Or perhaps someone else on this list knows more than I do. OK, scratch "perhaps". :) 

Serge Wroclawski

unread,
Sep 21, 2009, 2:35:07 PM9/21/09
to clojure-...@googlegroups.com
On Fri, Sep 18, 2009 at 11:02 AM, Rok Lenarcic <rok.le...@gmail.com> wrote:
>

http://java.ociweb.com/mark/stm/article.html

And this talk has some slides on STM:
http://wiki.jvmlangsummit.com/images/a/ab/HickeyJVMSummit2009.pdf

- Serge

William Gouvea

unread,
Sep 22, 2009, 9:37:34 AM9/22/09
to clojure-...@googlegroups.com
Hello Rok,


About you paper, what this audience?

and you write about just STM ou other concurrency paradigms like
Actors(Erlang and Scala)?

Thanks for your time!



2009/9/18 Rok Lenarcic <rok.le...@gmail.com>:
--
William Gouvea (Amsterda)

Ciencia da Computação-Univercidade(RJ)

Evangelista e Proeficiente em Tecnologias OpenSource como Java,
OpenSolaris, Glassfish, Netbeans, Darkstar, Wonderland, JRuby,
SunSPOT, MySQL, PostgresSQL e muito mais!!

PORTFOLIO:

Sistemas de inteligencia artificial com caracteristicas como machine
learning utilizando conceitos de Redes Neurais, Data Mining,
Algoritmos Geneticos,Logica Fuzzy, Robotica e Automação.

I recently build some projects in JRuby on Rails,Artificial
Intelligence Systems,Clojure Code/Libs and Parallel/Concurrent
Systems, but i develop in Java since 2005, in all nuances(SE/EE/ME).

KNOWLEDGES:

Business Intelligence
HPC
Concurrency/Parallel Systems
WebServices/EJB
JXTA
Glassfish Portfolio
OpenSolaris
JRuby
Jython
Groovy
Clojure

CERTIFICATIONS AND COURSES:

Graduation Computer Science(In Course)

SUN JAVA
SCJA
SCJP
SCWCD (In Course)
SCSAS (In Course)

CAELUM JAVA/RUBY(RAILS)
FJ-11
FJ-16
FJ-21
FJ-55
RR-11

SUN STUDENT COURSES

OPENSOLARIS
SUNSPOT
DARKSTAR

JAVA PASSION COURSES(ALL)

Philip

unread,
Sep 22, 2009, 2:55:53 PM9/22/09
to clojure-...@googlegroups.com
Hello,

You might find this paper interesting
<http://p-cos.net/documents/cstm.pdf>. It's an extension of ContextL,
that models transactions using dynamically scoped layers. It also has
an explicit protocol for defining your own STM strategies (and for
thinking about STMs in general).

Software transactional memory (STM) is a promising approach for
coordinating concurrent threads, for which many implementation
strategies are currently being researched. Although some first
steps exist to ease experimenting with different strategies, this
still re- mains a relatively complex and cumbersome task. The
reason is that software transactions require STM-specific dynamic
crosscutting adaptations, but this is not accounted for in current
STM imple- mentations. This paper presents CSTM, an STM framework
based on Context-oriented Prorgamming, in which transactions are
mod- elled as dynamically scoped layer activations. It enables
expressing transactional variable accesses as user-defined
crosscutting con- cerns, without requiring invasive changes in the
rest of a program. This paper presents a proof-of-concept
implementation based on ContextL for Common Lisp, along with
example STM strategies and preliminary benchmarks, and introduces
some of ContextL’s unique features for context-dependent variable
accesses.

--
Philip
Reply all
Reply to author
Forward
0 new messages