CL-STM

Welcome to CL-STM 

CL-STM depends on arnesi, bordeaux-threads, and closer-mop.

(in-package :cl-user)
(defpackage :cl-stm
  (:use :arnesi
        :bordeaux-threads
        :cl
        :cl-user
        :closer-mop)
  (:nicknames :stm)
  (:shadowing-import-from :arnesi
                          #:else
                          #:specializer ; closer-mop
                          #:until)
  (:export #:progt
           #:progt1
           #:try
           #:tlet
           #:tif
           #:retry
           #:trans
           #:untrans
           #:deftransaction
           #:deftmethod

           #:transactional-class
           #:transactional-direct-slot
           #:transactional-effective-slot
           #:transactional-object
           #:deftclass

           #:transaction
           #:standard-transaction
           #:perform
           #:execute
           #:orelse
           #:sequence

           #:tlog
           #:standard-tlog
           #:commit
           #:check?
           #:merge-logs
           #:wait

           #:tvar
           #:standard-tvar
           #:read-tvar
           #:write-tvar
           #:unwait

           #:recording-p
           #:with-recording
           #:without-recording

           #:current-tlog
           #:with-tlog
           #:with-new-tlog

           #:stm
           #:unstm
           #:stms
           #:unstms
           #:with-stm
           #:trans-from
           #:untrans-form
           #:sequence-form
           #:sequence-forms

           #:counter
           #:increment
           #:decrement
           #:reset
           #:swap

           #:mvar
           #:empty?
           #:empty!
           #:take
           #:put))