OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-atomspace-cog commits / 9956639

Bump version number, cleanup README
99566394a977b577ec7740c186d8e2525d4e1571
by Linas Vepštas <linasvepstas@gmail.com> · 2025-12-10T04:46:49.000Z

Changed files (2) +41 -28

CMakeLists.txt +4 -6
……@@ -21,7 +21,7 @@ IF(CMAKE_VERSION VERSION_GREATER 3.31)
2121 CMAKE_POLICY(SET CMP0177 NEW)
2222ENDIF(CMAKE_VERSION VERSION_GREATER 3.31)
2323
24PROJECT(cogclient)
24PROJECT(cogclient VERSION 1.2.0)
2525
2626# ----------------------------------------------------------
2727# User-modifiable options. Feel free to change these!
……@@ -190,6 +190,7 @@ ADD_CUSTOM_TARGET(cscope
190190
191191# ===================================================================
192192# Packaging
193# This is broken, more or less.
193194## Architecture the package is for.
194195## TODO: Will give error on non debian distros, fix it.
195196EXECUTE_PROCESS(COMMAND dpkg --print-architecture
……@@ -201,9 +202,6 @@ STRING(TIMESTAMP UTC_DATE %Y%m%d UTC)
201202# that it is owned by the builder thus avoiding 'Permission denied' error when
202203# packaging.
203204FILE(WRITE "${PROJECT_BINARY_DIR}/install_manifest.txt")
204## It doesn't have a header-file declaring the version similar to cogutil and
205## atomspace.
206SET(SEMANTIC_VERSION 0.1.4)
207205
208206## Cpack configuration
209207SET(CPACK_GENERATOR "DEB")
……@@ -213,7 +211,7 @@ SET(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}/packages")
213211SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The AtomSpace Cogserver Client")
214212SET(CPACK_PACKAGE_NAME "atomspace-cog-dev")
215213SET(CPACK_PACKAGE_VENDOR "opencog.org")
216SET(CPACK_PACKAGE_VERSION "${SEMANTIC_VERSION}-${UTC_DATE}")
214SET(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}-${UTC_DATE}")
217215SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
218216SET(CPACK_PACKAGE_FILE_NAME
219217 "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${PACKAGE_ARCHITECTURE}")
……@@ -222,7 +220,7 @@ SET(CPACK_PACKAGE_EXECUTABLES "atomspace-cog" "The AtomSpace Cogserver Client")
222220
223221## Debian specific configurations
224222SET(DEPENDENCY_LIST
225 "guile-2.2-dev (>= 2.2.2)"
223 "guile-3.0-dev (>= 3.0.0)"
226224 "libstdc++6 (>= 4.7)"
227225 "libcogutil-dev (>= 2.0.2)"
228226 "atomspace-dev (>= 5.0.3)"
README.md +37 -22
……@@ -81,6 +81,9 @@ The network connection is provided by a
8181 +-------------+
8282```
8383
84Complex storage network fabrics can be created with the
85[ProxyNode](https://wiki.opencog.org/w/ProxyNode). Basic proxies
86exist for mirroring, read load-balancing, write buffering, etc.
8487
8588Example Usage
8689-------------
……@@ -115,8 +118,39 @@ granular load and store is possible; see the
115118
116119Status
117120------
118This is **Version 1.1.0**. All 26 (13+13) unit tests consistently
119pass.
121This is **Version 1.2.0**. All 27 (13+13+1) unit tests consistently
122pass. For a general overview, see the wiki documentation for the
123[StorageNode](https://wiki.opencog.org/w/StorageNode) and
124[CogStorageNode](https://wiki.opencog.org/w/CogStorageNode).
125
126Changes since January 2025:
127* Barriers are now implemented correctly and work reliably. Barriers
128 are fences that ensure all operations that come before are completed,
129 before any operations that come after are started.
130* Operations that don't need a reply (e.g. `*-store-atom-*`) no longer
131 wait for a confirmation reply to be received. This increases
132 throughput significantly.
133* Busy-wait spinloops have been replaced by c++-20 `std::atomic::wait()`
134 which means idle time on congested queues is significantly reduced.
135* Cogserver shutdown in unit tests has been fixed. For testing, the
136 unit tests start a cogserver, do TCP/IP I/O to it, and then shut down
137 the cogserver. These tests had been plagued by shutdown issues, where
138 the tests pass but then the cogserver would hang or crash on shutdown.
139 These issues have all been fixed. You can now start and stop
140 cogservers very rapidly, on demand, in a reliable fashion.
141* A random assortment of bug fixes and changes, driving by changes in
142 the core AtomSpace.
143
144There is one missing feature, but no one uses it (yet): support for
145multiple atomspaces (aka frames) is missing. Work on adding this was
146started but is low priority. One unit test works. See the `cog-simple`
147directory.
148
149Build
150-----
151Prerequistes: of course the AtomSpace is needed:
152https://github.com/opencog/atomspace but so is the base `StorageNode`
153API, at https://github.com/opencog/atomspace-storage
120154
121155Build as below. Note parallel testing works!
122156```
……@@ -126,19 +160,6 @@ make -j
126160make -j check ARGS=-j
127161```
128162
129Performance looks good. Two of the unit tests take about 20 seconds
130each to run; two more take a few minutes. This is intentional,
131they are pounding the server with large datasets.
132
133This is a "stable" version. There are no known bugs at this time.
134It is being used in "production" environments, successfully transferring
135gigabytes of data around.
136
137There is one missing feature, but no one uses it (yet): support for
138multiple atomspaces (aka frames) is missing. Work on adding this was
139started but is low priority. One unit test works. See the `cog-simple`
140directory.
141
142163Design
143164------
144165There are actually two implementations in this repo. One that is
……@@ -180,14 +201,8 @@ scheme> (define csn (CogStorageNode "cog://example.com/"))
180201scheme> (cog-open csn)
181202```
182203
183URL's
184-----
204### URL's
185205Supported URL's include:
186206* `cog://example.com/` -- standard internet hostname
187207* `cog://1.2.3.4/` -- standard dotted IPv4 address
188208* `cog://example.com:17001` -- specify the port of the cogserver.
189
190See
191[proxying](https://github.com/opencog/atomspace/tree/master/opencog/persist/proxy)
192for details about how the cogserver can pass on I/O requests to other
193storage nodes.