0.12.027 Apr 2018 12:19
Changes since 0.11.0: Adds support for transaction-aware Unix signal handling. Improved documentation. Bug fixes.
0.11.104 Mar 2018 13:30
Changes since 0.11.0: Bug fix: Tarball does no longer depends on hard-coded paths.
0.11.027 Feb 2018 17:33
Changes since 0.10.0: Safe type casting and arithmetic that detect and handle overflows, underflows and div-by-zero errors. The cat Cate is now the project's mascot. TM bug fixes.
0.10.102 Feb 2018 11:48
Chanes since 0.10.0: Fixes a critical bug in the transactional-memory module.
0.10.027 Jan 2018 15:14
picotm 0.10.0 adds support for single-byte Transactional Memory, fast discards of free'd transactional memory, Valgrind-instrumented testing, bug fixes, and much more.
0.9.026 Dec 2017 17:29
Added support for Windows, MacOS X and FreeBSD. Added feature-test macros. Bug fixes.
0.8.027 Nov 2017 14:14
Added transactional lists, multisets, queues, stacks; Fixed init errors and irrevocability on transaction roll backs.
0.6.030 Sep 2017 10:56
Added transactional snprintf(), sscanf(); Added restart statistics; Added module tests and `make check'.
0.5.029 Aug 2017 06:59
Library versioning; Distinct file buffers; Internal error handling without abort(); strerror_r(); Shared ref-count object.
0.4.031 Jul 2017 08:54
Transactional access to file-descriptor table; Adds R/W locks, R/W state, tree maps, ref counters to module library; C11 code.
0.2.001 Jun 2017 03:15
Add file 'ReleaseProcess', which describes the steps of making a release.
Rename picotm_abort() to picotm_restart().
Add enum picotm_error_code .
Add struct picotm_error .
Save transaction errors over restarts.
Export public interfaces for error detection.
Return module errors in struct picotm_error .
Pass module errors to top-most level of commit infrastructure.
Libc: Removed unused error codes ERR_CCMODE and ERR_PEERABORT.
Libc: Return errors from allocator callbacks.
Libc: Return errors from error-module callbacks.
Libc: Return errors from module callbacks of struct fildes_tx .
Libc: Return errors from module callbacks of struct ofd_tx .
Libc: Return errors from module callbacks of struct fd_tx .
Libc: Return errors from get_fd() and get_iofd().
Libc: Return errors from module callbacks of struct fd .
Libc: Return errors from module callbacks of struct ofd .
Libc: Return errors from module callbacks of struct vfs_tx .
Libm: Separate public interface from FPU module.
Libm: Clean up FPU module.
Libm: Return errors from internal functions.
tm: Move thread-local module data to struct tm_module .
tm: Clean up module callbacks.
tm: Move module interfaces to module. c,h .
tm: Return errors from module callbacks of struct tm_vmem_tx .
Return 0/-1 instead of true/false from finish_modules().
Clear error state when (re-)starting a transaction.
Add empty error status, static error initializer, and error test.
Initialize all instances of struct picotm_error .
Tests: Remove obsolete socket test case.
Libc: Declare interfaces missing in unistd.h.
Tests: Restore VFS test case.
Tests: Remove obsolete code and comments from main.c.
Tests: Rename test program to picotm-test.
Export error interface as PICOTM_NOTHROW instead of PICOTM_EXPORT.
Add missing PICOTM_END_DECLS.
Libc: Add missing PICOTM_ BEGIN,END _DECLS statements.
Doc: Enable sub-directories for doxygen output.
Doc: Disable doxygen VERBATIM_HEADERS.
Doc: Don't include undocume
0.1.010 May 2017 18:44
picotm 0.1.0 (2017-04-29)
* Added new paradigm for error handling. The original error handling
had to be provided by the user and was split between execution and
commit phase of the transaction. Under the new paradigm, the error
detection and recovery is provided by picotm. Users most only provide
fall-back code when recovery fails.
* Cleaned up and restructured existing source code. All code is now
self-contained without dependencies on external compiler tools,
besides the GNU toolchain.
* Restored modules for memory allocation, file-descriptor I/O, VFS,
math, and helper functions from libc.
* Added module for Software Transactional Memory. The old STM was
a fork of TinySTM, which also served as TM.
* Added core transaction manager. The new TM provides an updated
public interface and from-scratch implementation.
* Moved tests into separate package.
* Added build system based on GNU autotools
* Licensed all source code under the Mozilla Public License, v. 2.0